// Neighbourhood Energy Javascript Document
function stripCharacter(words,character) {
  var spaces = words.length;
  for(var x = 1; x<spaces; ++x){
   words = words.replace(character, "");   
 }
 return words;
}

function showMenu(comId)
{
	x = document.getElementById(comId);
	//x.className = 'mItemOver ' + comId +'Over';
	if(comId == 'CustomerLinkDiv' || comId == 'PartnerLinkDiv' || comId == 'WorksLinkDiv' || comId ==  'ImageLinkDiv' || comId == 'Partner2LinkDiv' || comId == 'ContentLinkDiv' || comId == 'FooterLinkDiv' || comId == 'ContactLinkDiv')
	{
		chkmouseover(comId);
	}
	return true;
}

function hideMenu(comId)
{
	x = document.getElementById(comId);
	//x.className = comId;
	if(comId == 'CustomerLinkDiv' || comId == 'PartnerLinkDiv' || comId == 'WorksLinkDiv' || comId ==  'ImageLinkDiv' || comId == 'Partner2LinkDiv' || comId == 'ContentLinkDiv' || comId == 'FooterLinkDiv' || comId == 'ContactLinkDiv')
	{
		chkmouseout(comId);
	}
	return true;
}

////////////////////////////////////////////////////////////////////
// menu functions
////////////////////////////////////////////////////////////////////

function chkmouseover(passobj)
{
	x = document.getElementById(passobj);
	curX = findPosX(x);
	curY = findPosY(x);

	y = document.getElementById('menu' + passobj);

	y.style.display = '';

/*	if(navigator.appName == 'Microsoft Internet Explorer')
	{
		y.style.top = curY + 27;
		y.style.left = curX + 15;
	}
	else
	{
		y.style.top = curY + 25;
		y.style.left = curX - 0;
	}*/
}

function chkmouseout(passobj)
{
	y = document.getElementById('menu' + passobj);

	y.style.display = 'none';
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function screenWidth()
{
	if (self.innerWidth)
	{
		frameWidth = self.innerWidth;
		frameHeight = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientWidth)
	{
		frameWidth = document.documentElement.clientWidth;
		frameHeight = document.documentElement.clientHeight;
	}
	else if (document.body)
	{
		frameWidth = document.body.clientWidth;
		frameHeight = document.body.clientHeight;
	}
	return frameWidth;
}

function screenHeight()
{
	if (self.innerWidth)
	{
		frameWidth = self.innerWidth;
		frameHeight = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientWidth)
	{
		frameWidth = document.documentElement.clientWidth;
		frameHeight = document.documentElement.clientHeight;
	}
	else if (document.body)
	{
		frameWidth = document.body.clientWidth;
		frameHeight = document.body.clientHeight;
	}
	return frameHeight;
}

function isNumeric(elem){
	var numericExpression = /^[0-9]+$/;
	if(elem.value.match(numericExpression)){
		return true;
	}else{
		alert("Numbers Only Please");
		elem.focus();
		return false;
	}
}

/* BILL CALCULATOR */
var request = null;
var AJAX_SERVER = '';

function getrequest() {
  request = null;
  try {
    request = new XMLHttpRequest();
  } catch (trymicrosoft) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (othermicrosoft) { 
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (failed) {
        request = null;
      }
    }
  }
  return request;
}

function getsupplierlist(postcode) {
  request = getrequest();
  if (request == null) {
    alert("Cannot determine supplier list from postcode as your browser doesnt support AJAX operations!");
  }
  else {
    var url = AJAX_SERVER + "getsuppliers.php?postcode=" + escape(postcode);
    request.onreadystatechange = loadSupplierList;
    request.open("GET", url, true);
    request.send(null);
  }
}

function getbillestimate(postcode, supplier, amount) {
  request = getrequest();
  if (request == null) {
    alert("Cannot calculate bill estimate as your browser doesnt support AJAX operations!");
  }
  else {
    var url = AJAX_SERVER + "getbillestimate.php?postcode=" + escape(postcode) + "&supplier=" + escape(supplier) + "&amount=" + amount;
    request.onreadystatechange = loadbillestimates;
    request.open("GET", url, true);
    request.send(null);
  }
}

function loadSupplierList() {
  if (request.readyState == 4) {
    if (request.status == 200) {
      var response = request.responseText;
      var jsonlist = eval( '(' + response + ')' );
      var sltSuppliers = document.getElementById("sltSupplier");
      sltSuppliers.options.length = 0;
      var i = 0;
	 var myArray = new Array();
      for (var value in jsonlist.Suppliers[0]) {
        sltSuppliers.options[i] = new Option(jsonlist.Suppliers[0][value], value, 0, 0);
        ++i;
      }
      sltSuppliers.disabled = false;
      document.getElementById("txtLastBillAmount").disabled = false;
      document.getElementById("btnCalculate").disabled = false;
  
      request == null;
    }
  }
}

function loadbillestimates() {
 if (request.readyState == 4) {
    if (request.status == 200) {
	 var sPath = window.location.pathname;
	 var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
      var response = request.responseText;
      var jsonestimate = eval( '(' + response + ')' );
      var cost = jsonestimate.BillEstimates[0].Cost;
      document.getElementById('BillCostAmountLabel').style.display = 'block';
      var costresult = document.getElementById('BillCostAmountResult');
      costresult.style.display = 'block';
	 
	 cost = stripCharacter(cost,'$');
	 cost =  eval(cost);
	 var benefit = jsonestimate.BillEstimates[0].Benefit;
	 benefit = stripCharacter(benefit,'$');
	 benefit = eval(benefit);
	 maximum = cost - benefit;
	 var maximum1 = maximum;
	 maximum = formatNumber(maximum);
      costresult.childNodes[0].nodeValue = '$' + maximum + '*';

      var benefit = jsonestimate.BillEstimates[0].Benefit;
	 if(sPage == 'index.php') {
	      document.getElementById('BillBenefitAmountLabel').style.display = 'none';
	 } else {
	      document.getElementById('BillBenefitAmountLabel').style.display = 'none';
	 }
      var benefitresult = document.getElementById('BillBenefitAmountResult');
	 if(sPage == 'index.php') {
	      benefitresult.style.display = 'none';
	 } else {
		 benefitresult.style.display = 'none';
	 }
	 benefit = stripCharacter(benefit,'$');
	 benefit = eval(benefit);
      benefitresult.childNodes[0].nodeValue = benefit + '*';

      //if (jsonestimate.BillEstimates[0].Saving != null) {
        var saving = jsonestimate.BillEstimates[0].Saving;
        document.getElementById('BillSavingAmountLabel').style.display = 'block';
        var savingresult = document.getElementById('BillSavingAmountResult');
        savingresult.style.display = 'block';
	   
	   if(saving != null) {
		   saving1 = stripCharacter(saving,'$');
		   saving1 =  eval(saving1)
		   benefit1 = stripCharacter(benefit,'$');
		   benefit1 = eval(benefit1)
		   total = eval(benefit1 + saving1);
		   total = formatNumber(total);
	   } else {
		   benefit1 = stripCharacter(benefit,'$');
		   benefit1 = eval(benefit1);
		   total = formatNumber(benefit1);
		   
		  // total = benefit1;   
	   }
	    savingresult.childNodes[0].nodeValue = '$' + total + '*';
	   //savingresult.childNodes[0].nodeValue = saving + benefit;
	   
	   var findoutmore = document.getElementById('FindOutMoreButton');
	   findoutmore.style.display = 'block';
	   var amount1 = document.getElementById("txtLastBillAmount").value;
	   var postcode1 = document.getElementById("txtPostcode").value;
	   var s = document.getElementById("sltSupplier");
	   var supplier1 = s.options[s.options.selectedIndex].text;
	 
	   //document.getElementById('FindOutMoreButton').href = 'customer-center.php?id=calculator2&saving=' + saving1 + '&benefit=' + benefit1 + '&maximum=' + maximum1 + '&lastamount=' + amount1 + '&postcode=' + postcode1 + '&supplier=' + supplier1 + '&cost=' + cost + '&state=2';
	   document.getElementById('FindOutMoreButton').href = 'registration-step1.php';
	   
     // }
	 
	 document.getElementById('DisclaimerLabel').style.display = 'block';
	  
	 request == null;	  
	  
    }
  }
}

function resetform() {
  document.getElementById("txtPostcode").value = '';
  document.getElementById("txtLastBillAmount").value = '';
  document.getElementById("txtPostcode").disabled = false;
  document.getElementById("sltSupplier").disabled = true;
  document.getElementById("txtLastBillAmount").disabled = true;
  document.getElementById("btnCalculate").disabled = true;
  resetresults();
}

function resetresults() {
  document.getElementById('BillCostAmountLabel').style.display = 'none';
  document.getElementById('BillCostAmountResult').style.display = 'none';
  document.getElementById('BillBenefitAmountLabel').style.display = 'none';
  document.getElementById('BillBenefitAmountResult').style.display = 'none';
  document.getElementById('BillSavingAmountLabel').style.display = 'none';
  document.getElementById('BillSavingAmountResult').style.display = 'none';
  document.getElementById('DisclaimerLabel').style.display = 'none';
  document.getElementById('FindOutMoreButton').style.display = 'none';
}

function onPostcodeKey(evt) {
  evt = (evt) ? evt : event;   
  var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
  if ((charCode > 31) && (charCode < 48 || charCode > 57 && charCode != 116)) {
    alert("Enter numerals only in this field");
    resetform();
    return false;
  }
    else if (charCode == 8) {
	   document.getElementById("sltSupplier").disabled = true;
        document.getElementById("txtLastBillAmount").disabled = true;
        document.getElementById("btnCalculate").disabled = true;
    }
  
  if ((charCode >= 48) && (charCode <= 57)) {
    var number = charCode - 48;
    var keytext = new String(number);
    var postcode = document.getElementById("txtPostcode").value + keytext;
    var rePartPostcode = /^[38]\d{0,3}$/;
	
    if (rePartPostcode.test(postcode)) {
      if (postcode.length == 4) {
        getsupplierlist(postcode);
      }
    else if (postcode.length != 4 || charCode == 8) {
	   document.getElementById("sltSupplier").disabled = true;
        document.getElementById("txtLastBillAmount").disabled = true;
        document.getElementById("btnCalculate").disabled = true;
    }
      else {
        document.getElementById("sltSupplier").disabled = true;
        document.getElementById("txtLastBillAmount").disabled = true;
        document.getElementById("btnCalculate").disabled = true;
      }
    }
    else if (postcode.length > 4) {
		 /*alert("test");*/
    }
    else {
      alert("Victorian postcodes consist of 4 numbers and must start with either 3 or 8, eg. 3000");
      if (postcode.length != 5) {
       	resetform();
      }
      return false;
    }
  }
  return true;
}

function onAmountKey(evt) {
  evt = (evt) ? evt : event;
  var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
  if ((charCode > 31) && (charCode < 48 || charCode > 57) && (charCode != 36) && (charCode != 46) && charCode != 116) {
    alert("Enter dollar amounts only in this field");
    return false;
  }
  	if(navigator.appName=="Netscape"){theKey=evt.which}
	if(navigator.appName.indexOf("Microsoft")!=-1){theKey=window.event.keyCode}
	if(theKey==13){
		return onCalculateBill();
  return true
}
}

function onCalculateBill() {
  resetresults()
  var postcode = document.getElementById("txtPostcode").value;
  var supplier = document.getElementById("sltSupplier").options[document.getElementById("sltSupplier").selectedIndex].value;
  var amount = document.getElementById("txtLastBillAmount").value;
  getbillestimate(postcode, supplier, amount);
}

function GetKey(evt){
if(navigator.appName=="Netscape"){theKey=evt.which}
if(navigator.appName.indexOf("Microsoft")!=-1){theKey=window.event.keyCode}
if(theKey==13){
alert("Submit form now!")
}
}

function formatNumber(num){
	return num.toFixed(2).toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g,'$1,').split('').reverse().join('').		replace(/^[\,]/,'');
}

function stripFormat(num){
	return num.toFixed(2).toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g,'$1,').split('').reverse().join('').		replace(/^[\,]/,'');
}

function onPercentageRequest(evt) {
	var varPercentage = document.getElementById("sltPercentage").options[document.getElementById("sltPercentage").selectedIndex].value;
	varPercentage = (varPercentage / 100);
	var varAnnualBill = document.getElementById("hidEstAnnualBill").value;
	var varEstNewBill = document.getElementById("hidCost").value;
	var varMaximumBill = document.getElementById("hidMaximum").value;
	
	
	
	var varRecieves = formatNumber(varPercentage * varEstNewBill);
	var Recieves1 = varMaximumBill;
	//alert (Recieves1);
	
	var varNewBill = (eval(varMaximumBill) + eval(varRecieves));
	//varNewBill = formatNumber(varNewBill);
	
	var varSavings = (eval(varAnnualBill) - varNewBill);
	
	varSavings = formatNumber(varSavings);
	varNewBill = formatNumber(varNewBill);
		
	document.getElementById("txtPartnerRecieves").innerHTML = '$' + varRecieves;
	document.getElementById("txtCustomerSavings").innerHTML = '$' + varSavings;
	document.getElementById("txtNewBill").innerHTML = '$' + varNewBill;
}