function isUndefined(v)
{
    return typeof(v) == 'undefined';
}
  
function isDefined(v)
{
    return typeof(v) != 'undefined';
}

function echeck(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   //alert("Invalid E-mail ID")
	   return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   //alert("Invalid E-mail ID")
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		//alert("Invalid E-mail ID")
		return false
	}

	 if (str.indexOf(at,(lat+1))!=-1){
		//alert("Invalid E-mail ID")
		return false
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		//alert("Invalid E-mail ID")
		return false
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
		//alert("Invalid E-mail ID")
		return false
	 }
	
	 if (str.indexOf(" ")!=-1){
		//alert("Invalid E-mail ID")
		return false
	 }

	 return true					
}






function isAllCharsEmpty(s)
{
   for (var i = 0; i < s.length; i++)
   {
      if (s.charCodeAt(i) > 32)
         return false;
   }
   return true;
}
  
function isEmpty(s)
{
   return isUndefined(s) || s == null || s.length == 0 || isAllCharsEmpty(s);
}

function eMenu(objMenu)
{
  var myElement = document.getElementById(objMenu); 
  if (myElement.style.display == "none")
   {
    myElement.style.display = "";
   }
    else
   {
    myElement.style.display = "none";
   }
}

// function for mouseover, mouseout and mousedown throughout the site where images are swapped and set
function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_nbGroup(event, grpName) { //v3.0
  var i,img,nbArr,args=MM_nbGroup.arguments;
  if (event == "init" && args.length > 2) {
    if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
      img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
      if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
      nbArr[nbArr.length] = img;
      for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
        if (!img.MM_up) img.MM_up = img.src;
        img.src = img.MM_dn = args[i+1];
        nbArr[nbArr.length] = img;
    } }
  } else if (event == "over") {
    document.MM_nbOver = nbArr = new Array();
    for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = (img.MM_dn && args[i+2]) ? args[i+2] : args[i+1];
      nbArr[nbArr.length] = img;
    }
  } else if (event == "out" ) {
    for (i=0; i < document.MM_nbOver.length; i++) {
      img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
  } else if (event == "down") {
    if ((nbArr = document[grpName]) != null)
      for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = img.MM_dn = args[i+1];
      nbArr[nbArr.length] = img;
  } }
}

// to expand and collapse certain blocks of texts
//function eMenu(objMenu,objImage)
function eMenu(objMenu)
{
//  var myElement = document.getElementById(objMenu,objImage); 
  var myElement = document.getElementById(objMenu); 
  if (myElement.style.display == "none")
   {
    myElement.style.display = "";
//    objImage.src = "images/minus.gif";
   }
    else
   {
    myElement.style.display = "none";
//    objImage.src = "images/plus.gif";
   }
}

// to open a window with a fixed size 550x500 - legal & privacy policy
function openwindow(url) {
	var win;

    if(document.all) {
        var width = screen.Width*2/3;
        var height = screen.Height*2/3;
    }
    else {
        var width=640;
        var height=480;
    }

    win = window.open(url,'Notices','align=left,width='+width+',height='+height+',toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes');
}

// to open a window which is always 2/3 of the screen - tech partners
function open_win(url,w,h) {
	var win;

    if(document.all) {
        var width = document.body.offsetWidth*2/3;
        var height = document.body.offsetHeight*2/3;
    }
    else if (document.layers) {
        var width = window.innerWidth*2/3
        var height = window.innerHeight*2/3
    }
    else {
        var width=640;
        var height=480;
    }

    win = window.open(url,'Technology_Partners','align=left,width='+width+',height='+height+',toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes');
}

// to open a window with varied size - server maintainence notices
var chasm = screen.availWidth;
	var mount = screen.availHeight;
	var w = 0;
	var h = 0;

function winOpen(fname,w,h) {
		discover = window.open(fname,'posB','scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,width=' + w + ',height=' + h + ',left=' + ((chasm - w - 10) * .5) + ',top=' + ((mount - h - 30) * .5));
	}

// function to find the bottom right hand corner - top of page image in FAQ section
function pageOffset() {
    if (document.layers) {
        document.layers['to_top'].pageX = (window.pageXOffset)+(window.innerWidth)-130;
        document.layers['to_top'].pageY = (window.pageYOffset)+(window.innerHeight)-25;
    }
    else if (document.all) {
        document.all['to_top'].style.left = (document.body.scrollLeft)+(document.body.clientWidth)-130;
        document.all['to_top'].style.top = (document.body.scrollTop)+(document.body.clientHeight)-25;
    }
    setTimeout('pageOffset()',1000); // every 2 seconds
}

// function for hiding and showing the guided tour pictures and texts
var n;

function set(What,Value) {
    if (document.layers && document.layers[What] != null) 
	  document.layers[What].visibility = Value;
    else if (document.all) 
	  document.all[What].style.visibility = Value;
}

function hide(n) {
	set('tour' + n, 'hidden');
	set('rightnav' + n, 'hidden');
}

function show(n) {
	set('tour' + n, 'visible');
	set('rightnav' + n, 'visible');
}

// copy fields for key contacts in store if SAME as owner details
function chkcontact(data) {
  if (data.check_contact.checked==true) {
    data.c_firstname.value = data.o_firstname.value;
	data.c_lastname.value = data.o_lastname.value;
    data.c_mobile_number.value = data.o_mobile_number.value;
	data.c_email.value = data.o_email.value;
	data.c_order_reminder.value = data.o_order_reminder.value;
	data.c_order_exception.value = data.o_order_exception.value;
	data.c_training_preference.value = data.o_training_preference.value; 
  }
  else {
    data.c_firstname.value = "";
	data.c_lastname.value = "";
    data.c_mobile_number.value = "";
	data.c_email.value = "";
	data.c_order_reminder.value = "";
	data.c_order_exception.value = "";
	data.c_training_preference.value = ""; 
  }
}

// untick the checkbox for accepting Quatro Retailer Service Terms when either the checkbox or the link is clicked
function release(data){
  if (data.accept_service.checked == true) {
    data.accept_service.checked = false;
  }
  else if (data.accept_service.checked == false){
    data.accept_service.checked = false;
  }
  openwindow('../service_agree.htm');
}

// activate radio buttons if terms & condition is read
function chkterms(data) {
  if (data.accept_terms.checked==true) {
    data.offer[0].disabled=false;
    data.offer[1].disabled=false;
    data.offer[2].disabled=false;
  }
  else {
    data.offer[0].disabled=true;
    data.offer[1].disabled=true;
    data.offer[2].disabled=true;
  }
}

// activate field for 'other ways in knowing about Quatro'
function chkhow(data) {

  if (data.reference.value=='OTHER') {
    if (data.reference_other.disabled=true) {
	  data.reference_other.disabled=false;
	  data.reference_other.focus();
    }
  }
  else {
	data.reference_other.disabled=true;
  }
}

// form validation for retailer registration
function checkform() {
  if (isEmpty(document.all.regform.store_name.value)) {
	alert("Please enter your store name.");
	document.all.regform.store_name.focus();
	return false;
  }
  else
  if (isEmpty(document.all.regform.trading_name.value)) {
    alert("Please enter the legal trading name.");
	document.all.regform.trading_name.focus();
	return false;
  }
  else
  if (isEmpty(document.all.regform.shop_number.value)){
    alert("Please enter store address.");
	document.all.regform.shop_number.focus();
	return false;
  }
  else
  if (isEmpty(document.all.regform.suburb.value)) {
    alert("Please enter store suburb.");
	document.all.regform.suburb.focus();
	return false;
  }
  else
  if (isEmpty(document.all.regform.state.value)) {
    alert("Please enter store state.");
	document.all.regform.state.focus();
	return false;
  }
  else
  if (isEmpty(document.all.regform.postcode.value)) {
    alert("Please enter store postcode.");
	document.all.regform.postcode.focus();
	return false;
  }
  else
  if (isEmpty(document.all.regform.phone.value)) {
    alert("Please enter store phone number including std code.");
	document.all.regform.phone_std.focus();
	return false;
  }  
/*
  else
  if (isEmpty(document.all.regform.abn.value)) {
    alert("Please enter your store's A.B.N.");
	document.all.regform.abn.focus();
	return false;
  }
*/
  else
  if (isEmpty(document.all.regform.o_firstname.value)) {
    alert("Please enter the owners first name.");
	document.all.regform.o_firstname.focus();
	return false;
  }
  else
  if (isEmpty(document.all.regform.o_lastname.value)) {
    alert("Please enter the owners last name.");
    document.all.regform.o_lastname.focus();
 	return false;
  }
/*
  else 
  if (isEmpty(document.all.regform.o_mobile_number.value)) {
    alert("Please enter the owners mobile number.");
	document.all.regform.o_mobile_number.focus();
	return false;
  }  
*/
  else
  if (isEmpty(document.all.regform.o_email.value)) {
    alert("Please enter the owners email address.");
	document.all.regform.o_email.focus();
	return false;
  }  
  /*
  else
  if (echeck(document.all.regform.o_email.value)==false){
	 alert("Please enter the a valid email address.");
	 document.all.regform.o_email.focus();
 	 return false;
  }
  else
  if (isEmpty(document.all.regform.o_promotions.value)) {
    alert("Please select the preferred method of delivering promotions.");
	document.all.regform.o_promotions.focus();
	return false;
  }
  else
  if (isEmpty(document.all.regform.o_promo_alert.value)) {
    alert("Please select the preferred method of delivering promotion alerts.");
	document.all.regform.o_promo_alert.focus();
	return false;
  }
  */
  else
  if (isEmpty(document.all.regform.o_order_reminder.value)) {
    alert("Please select the preferred method of delivering order reminder.");
	document.all.regform.o_order_reminder.focus();
	return false;
  }
  else
  if (isEmpty(document.all.regform.o_order_exception.value)) {
    alert("Please select the preferred method of delivering order exceptions.");
	document.all.regform.o_order_exception.focus();
	return false;
  }
  else
  if (isEmpty(document.all.regform.o_training_preference.value)) {
    alert("Please select the preferred method of training.");
	document.all.regform.o_training_preference.focus();
	return false;
  }
 else
 { 
 	return true;
 }

return false;
}

// form validation for retailer registration
function nz_checkform() {
  if (isEmpty(document.all.regform.store_name.value)) {
	alert("Please enter your store name.");
	document.all.regform.store_name.focus();
	return false;
  }
  else
  if (isEmpty(document.all.regform.trading_name.value)) {
    alert("Please enter the legal trading name.");
	document.all.regform.trading_name.focus();
	return false;
  }
  else
  if (isEmpty(document.all.regform.shop_number.value)) {
    alert("Please enter store address.");
	document.all.regform.shop_number.focus();
	return false;
  }
  else
  if (isEmpty(document.all.regform.suburb.value)) {
    alert("Please enter store suburb.");
	document.all.regform.suburb.focus();
	return false;
  }
 /* else
  if (isEmpty(document.all.regform.state.value)) {
    alert("Please enter store state.");
	document.all.regform.state.focus();
	return false;
  }
  else
  if (isEmpty(document.all.regform.postcode.value)) {
    alert("Please enter store postcode.");
	document.all.regform.postcode.focus();
	return false;
  }*/
  else
  if (isEmpty(document.all.regform.phone.value)) {
    alert("Please enter store phone number including std code.");
	document.all.regform.phone_std.focus();
	return false;
  }  
/*
  else
  if (isEmpty(document.all.regform.abn.value)) {
    alert("Please enter your store's A.B.N.");
	document.all.regform.abn.focus();
	return false;
  }
*/
  else
  if (isEmpty(document.all.regform.o_firstname.value)) {
    alert("Please enter the owners first name.");
	document.all.regform.o_firstname.focus();
	return false;
  }
  else
  if (isEmpty(document.all.regform.o_lastname.value)) {
    alert("Please enter the owners last name.");
    document.all.regform.o_lastname.focus();
 	return false;
  }
/*
  else 
  if (isEmpty(document.all.regform.o_mobile_number.value)) {
    alert("Please enter the owners mobile number.");
	document.all.regform.o_mobile_number.focus();
	return false;
  }  

  else
  if (isEmpty(document.all.regform.o_email.value)) {
    alert("Please enter the owners email address.");
	document.all.regform.o_email.focus();
	return false;
  }  

  else
  if (echeck(document.all.regform.o_email.value)==false){
	 alert("Please enter the a valid email address.");
	 document.all.regform.o_email.focus();
 	 return false;
  }

  else
  if (isEmpty(document.all.regform.o_promotions.value)) {
    alert("Please select the preferred method of delivering promotions.");
	document.all.regform.o_promotions.focus();
	return false;
  }
  else
  if (isEmpty(document.all.regform.o_promo_alert.value)) {
    alert("Please select the preferred method of delivering promotion alerts.");
	document.all.regform.o_promo_alert.focus();
	return false;
  }
  */
  else
  if (isEmpty(document.all.regform.o_order_reminder.value)) {
    alert("Please select the preferred method of delivering order reminder.");
	document.all.regform.o_order_reminder.focus();
	return false;
  }
  else
  if (isEmpty(document.all.regform.o_order_exception.value)) {
    alert("Please select the preferred method of delivering order exceptions.");
	document.all.regform.o_order_exception.focus();
	return false;
  }
  else
  if (isEmpty(document.all.regform.o_training_preference.value)) {
    alert("Please select the preferred method of training.");
	document.all.regform.o_training_preference.focus();
	return false;
  }
 else
 { 
 	return true;
 }

return false;
}


// ABN check
function CheckABN(data){

  //alert("About to check the ABN number");
  
  var ABN_Number = data.abn.value;
  var ABN_Array = new Array(); 
  
  var n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,nTotal,nRound;
  
  // here we do the step 4 [Check if ABN is 11 Digits Long]
  if(ABN_Number.length == 11){

    // Breaks the ABN to single character and populates the array.
	for(var i = ABN_Number.length;i >=0 ;i= i-1){
	  ABN_Array[i] = ABN_Number.substring(i,i-1);
	}

	// upgrade includes to modify the step 2 and use a reverse array for the same process.
	// here we do the step 2 [Extract the Numbers]
	n1 = ABN_Array[11]; 
	n2 = ABN_Array[10]; 
	n3 = ABN_Array[9]; 
	n4 = ABN_Array[8]; 
	n5 = ABN_Array[7]; 
	n6 = ABN_Array[6]; 
	n7 = ABN_Array[5]; 
	n8 = ABN_Array[4]; 
	n9 = ABN_Array[3]; 
	n10 = ABN_Array[2]; 
	n11 = ABN_Array[1];
	
	// step 3 [reduce 1 from the 11th element]
	n11 = n11 -1; 
	
	// here we do the step 4 [weighting factor]
	n1 = n1 * 19;
	n2 = n2*17;
	n3 = n3*15;
	n4 = n4*13;
	n5 = n5*11;
	n6 = n6*9;
	n7 = n7*7;
	n8 = n8*5;
	n9 = n9*3;
	n10 = n10*1;
	n11 = n11*10;
	nTotal = n1+n2+n3+n4+n5+n6+n7+n8+n9+n10+n11;
	
	// here we do the step 5 [Rounding of the total]
	nRound = nTotal/89 ; 
	//alert("nRound:"+nRound);
	
	//alert("Round Stuff:"+Math.round(nRound));
	
	if(Math.round(nRound) == nRound){
	  //alert("Correct ABN number");
	  return true;
	}
	else{
	  alert("The ABN you have entered is not valid. Please double check your ABN and try again.");
	  //data.abn.focus();
	}
  }
  else{
    alert("The ABN you have entered is not valid. Your ABN should contain 11 digits. Please double check and try again.");
	//data.abn.focus();
  }
}

function prepopulate() {
	
  /*document.all.regform.store_name.value="Bluechilli Solutions Pty. Ltd.";
  document.all.regform.trading_name.value="Bluechilli Solutions Pty. Ltd.";
  document.all.regform.street_name.value="5/32-36, queen victoria st";
  document.all.regform.suburb.value="Kogarah";
  document.all.regform.state.value="NSW";
  document.all.regform.postcode.value="2217";
  document.all.regform.phone.value="95536301";
  document.all.regform.abn.value="2342342342";
  
  document.all.regform.o_firstname.value="Sameer";
  document.all.regform.o_lastname.value="Kekade";
  document.all.regform.o_mobile_number.value="0411566650";
  document.all.regform.o_email.value="samsoft24@yahoo.com.au";
  document.all.regform.o_promotions.value="email";
  document.all.regform.o_promo_alert.value="newsletter";
  document.all.regform.o_order_reminder.value="webbased";
  document.all.regform.o_order_exception.value="sms";
  document.all.regform.o_training_preference.value="quatro Field Staff";
  
  document.all.regform.c_firstname.value="Rasika";
  document.all.regform.c_lastname.value="Kekade";
  document.all.regform.c_mobile_number.value="0433125545";  
  document.all.regform.c_role.value="supervisor";
  document.all.regform.c_email.value="contact@yahoo.com.au";
  document.all.regform.c_promotions.value="sms";
  document.all.regform.c_promo_alert.value="webbased";
  document.all.regform.c_order_reminder.value="newsletter";
  document.all.regform.c_order_exception.value="email";
  document.all.regform.c_training_preference.value="quatro Field Staff";

return false;*/
return true;
}

function autofocus(field, limit, next) {
    if (field.value.length == limit) {
        field.form.elements[next].focus( );
    }
}
