<!--

//---------- AJAX STUFF ------------------------------------


//setting an AJAX Responder: Something that happens with EACH AJAX CALL

/*
var myGlobalHandlers = {
	onCreate: function(){
		Element.show('systemWorking');
	},

	onComplete: function() {
		if(Ajax.activeRequestCount == 0){
			//Element.hide('systemWorking');
			hideWorkingMsg();
		}
	}
};
Ajax.Responders.register(myGlobalHandlers);

function reportError() {
	alert('There has been an AJAX error.');
}
function hideWorkingMsg() {
	Element.hide('systemWorking'); // <-- prototype.js function
	$('systemWorking').style.display = 'none';
}
*/
//-------------------------------------------------------


function goToURL(url) {location.href = url;}

function printPage() {
  if (window.print)
    window.print()
  else
    alert("Sorry, your browser doesn't support this feature.");
}

function externalLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
}
window.onload = externalLinks;


function MM_findObj(n, d) { //v4.01
  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);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

// Removes leading whitespaces
function LTrim( value ) {	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");	
}

// Removes ending whitespaces
function RTrim( value ) {	
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");	
}

// Removes leading and ending whitespaces
function trim( value ) {	
	return LTrim(RTrim(value));	
}

function YY_checkform() { //v4.66
//copyright (c)1998,2002 Yaromat.com
  var args = YY_checkform.arguments; var myDot=true; var myV=''; var myErr='';var addErr=false;var myReq;
  for (var i=1; i<args.length;i=i+4){
    if (args[i+1].charAt(0)=='#'){myReq=true; args[i+1]=args[i+1].substring(1);}else{myReq=false}
    var myObj = MM_findObj(args[i].replace(/\[\d+\]/ig,""));
    myV=myObj.value;
    if (myObj.type=='text'||myObj.type=='password'||myObj.type=='hidden'){
      if (myReq&&myObj.value.length==0){addErr=true}
      if ((myV.length>0)&&(args[i+2]==1)){ //fromto
        var myMa=args[i+1].split('_');if(isNaN(myV)||myV<myMa[0]/1||myV > myMa[1]/1){addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==2)){
          var rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");if(!rx.test(myV))addErr=true;
      } else if ((myV.length>0)&&(args[i+2]==3)){ // date
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);
        if(myAt){
          var myD=(myAt[myMa[1]])?myAt[myMa[1]]:1; var myM=myAt[myMa[2]]-1; var myY=myAt[myMa[3]];
          var myDate=new Date(myY,myM,myD);
          if(myDate.getFullYear()!=myY||myDate.getDate()!=myD||myDate.getMonth()!=myM){addErr=true};
        }else{addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==4)){ // time
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);if(!myAt){addErr=true}
      } else if (myV.length>0&&args[i+2]==5){ // check this 2
            var myObj1 = MM_findObj(args[i+1].replace(/\[\d+\]/ig,""));
            if(myObj1.length)myObj1=myObj1[args[i+1].replace(/(.*\[)|(\].*)/ig,"")];
            if(!myObj1.checked){addErr=true}
      } else if (myV.length>0&&args[i+2]==6){ // the same
            var myObj1 = MM_findObj(args[i+1]);
            if(myV!=myObj1.value){addErr=true}
      }
    } else
    if (!myObj.type&&myObj.length>0&&myObj[0].type=='radio'){
          var myTest = args[i].match(/(.*)\[(\d+)\].*/i);
          var myObj1=(myObj.length>1)?myObj[myTest[2]]:myObj;
      if (args[i+2]==1&&myObj1&&myObj1.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
      if (args[i+2]==2){
        var myDot=false;
        for(var j=0;j<myObj.length;j++){myDot=myDot||myObj[j].checked}
        if(!myDot){myErr+='* ' +args[i+3]+'\n'}
      }
    } else if (myObj.type=='checkbox'){
      if(args[i+2]==1&&myObj.checked==false){addErr=true}
      if(args[i+2]==2&&myObj.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
    } else if (myObj.type=='select-one'||myObj.type=='select-multiple'){
      if(args[i+2]==1&&myObj.selectedIndex/1==0){addErr=true}
    }else if (myObj.type=='textarea'){
      if(myV.length<args[i+1]){addErr=true}
    }
    if (addErr){myErr+='* '+args[i+3]+'\n'; addErr=false}
  }
  if (myErr!=''){alert('The required information is incomplete or contains errors:\t\t\t\t\t\n\n'+myErr)}
  document.MM_returnValue = (myErr=='');
}


function decision(message, url){
  if(confirm(message)) location.href = url;
}


function changeIt(field) {
   field.style.backgroundColor = "#ffffff";
}

function changeBack(field) {
   field.style.backgroundColor = "";
}




function ImagePreload() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=ImagePreload.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function checkAll(field) {
	for (i = 0; i < field.length; i++)
		field[i].checked = true ;
}

function uncheckAll(field) {
	for (i = 0; i < field.length; i++)
		field[i].checked = false ;
}

function validate_email(str) { 
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	if (str.indexOf(at)==-1){
	   return false;
	}
	
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false;
	}
	
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
	    return false;
	}
	
	 if (str.indexOf(at,(lat+1))!=-1){
	    return false;
	 }
	
	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
	    return false;
	 }
	
	 if (str.indexOf(dot,(lat+2))==-1){
	    return false;
	 }
	
	 if (str.indexOf(" ")!=-1){
	    return false;
	 }
	
	 return true;				
}

var checkflag = "false";

function check(field) {
	if (checkflag == "false") {
		for (i = 0; i < field.length; i++) {
		field[i].checked = true;}
		checkflag = "true";
		return "Uncheck All"; 
	}
	else {
		for (i = 0; i < field.length; i++) {
		field[i].checked = false; }
		checkflag = "false";
		return "Check All"; 
	}
}

function addNewContact() {
	theid = $('addNewContact');
	new Effect.Appear(theid, {duration: 0.7});	
}


function submitNewContact() { //submitting a new contact to the database
	$('vSubmitContact').setAttribute('disabled', 'disabled=disabled');
	thename = trim($F('vName'));
	theemail = trim($F('vEmail'));
	thephone = trim($F('vPhone'));
	thelogin = trim($F('vLogin'));
	thepass = trim($F('vPass'));
	thecustomer = trim($F('vCustomerType'));
	schoolid = trim($F('vSchoolAddID'));
	customerid = trim($F('vCustomerAddID'));
	
	if((thename=='') || (thephone=='') || (thelogin=='') || (thepass=='')) {
		alert('Please give values for all fields.');
		$('vSubmitContact').disabled = false;
		return;
	}
	
	if(theemail!='') {
		isvalid = validate_email(theemail);
		if(isvalid==false) {
			alert('Please submit a valid email address.');
			$('vSubmitContact').disabled = false;
			return;			
		}
	}
	
	if(thecustomer=='customer') {
		companyid = customerid;	
	}
	else {
		companyid  = schoolid;	
	}
	
	alert(companyid+', '+thecustomer);
	
	return;
	var url = 'ajax_contactProcess.php';
	var pars = 'vAction=add' + '&vCompanyID=' + companyid;

	var getCompany = new Ajax.Request ( url, 
		{
		method: 'post',
		parameters: pars,
		onComplete: updateCompanyDetails,
		onFailure: reportError
		}
	);	
	
}




function checkAddSchool() { //seeing if the customer they are adding is a school or not
	thecheckbox = $('vAddingSchool');
	if(thecheckbox.checked==true) {
		Element.show('schoolRow');	
		$('companySubmit').value = 'Add school';
		$('customerTitle').firstChild.nodeValue = 'Add School';
	}
	else {
		Element.hide('schoolRow');
		$('companySubmit').value = 'Add customer';
		$('customerTitle').firstChild.nodeValue = 'Add Customer';
	}
}


function checkCustomerForm() {
	thename = $F('vName');
	if(thename=='') {
		alert('You must provide a name for the client.');
		return false;
	}
	cityid = $F('vCityID');
	province = $F('vProvince');
	if((cityid=='') || (province=='')) {
		alert('You must provide a city and province.');
		return false;
	}
}


function checkNewCity(field) { //checking for a new city being added
	var newCity = trim($F('vNewCity')).toLowerCase();
	var city = $('vCityID');
	//$(city).options[city.selectedIndex].value;
	//alert(city.length);
	if(newCity!='') {
		foundIt = 0;
		//alert(city);
		for(i=1; i < city.length; i++) {
			
			thetext = $(city).options[i].text.toLowerCase();
			theid = $(city).options[i].value;
			if(thetext==newCity) {
				$('vNewCity').value = '';
				setInputValue(city,theid);
				foundIt = 1;
			}		
		}
		//setInputValue(city,'addnew');
		if(foundIt==0) {
			setInputValue(city,'addnew');
		}
	}
}

function checkNewCitySelect() {
	var city = $F('vCityID');
	if(city=='addnew') {
		$('vNewCity').value = '';
	}
}

function checkCitySelectCustomer() {
	var city = $F('vCityID');
	if(city=='addnew') {
		$('vNewCity').value = '';
		Element.show('vNewCity');
	}
	else {
		$('vNewCity').value = '';
		Element.hide('vNewCity');	
	}
}

function checkNewCityCustomer(field) { //checking for a new city being added
	var newCity = trim($F('vNewCity')).toLowerCase();
	var city = $('vCityID');
	//$(city).options[city.selectedIndex].value;
	//alert(city.length);
	if(newCity!='') {
		foundIt = 0;
		for(i=1; i < city.length; i++) {
			thetext = $(city).options[i].text.toLowerCase();
			theid = $(city).options[i].value;
			if(thetext==newCity) {
				foundIt = 1;
				$('vNewCity').value = '';
				Element.hide('vNewCity');
				setInputValue(city,theid);
			}	
		}
		if(foundIt==0) {
			setInputValue(city,'addnew');
		}		
		//setInputValue(city,'addnew');
	}
}

function setRecertDate(testDate) {
	var testDateRay = $F(testDate).split("-");
	var theCourseRay = $F('vCourseTypeID').split("|");
	var defaultYear = theCourseRay[1];
	if(isNaN(testDateRay[1])) {
		return;	
	}
	var finalDate = new Date;
	finalDate.setDate(testDateRay[1]);
	finalDate.setMonth(testDateRay[0]); // January = 0
	var newYear = parseInt(testDateRay[2])+parseInt(defaultYear);
	finalDate.setFullYear(newYear); 
	finalDate.setDate(finalDate.getDate()-1);
	var finalDay = format(finalDate.getDate());
	var finalMonth = finalDate.getMonth();

	$('vRecertificationDate').value = finalMonth + '-' + finalDay + '-' + newYear;
}

function format(number){
	var zero="";
	if(number<10) zero+="0";
	return zero+number.toString();
}
//-->
