//Check email

function validEmail(email) {
	invalidChars = "/:,;";
	
	if (email == "") {
		return false;
	}
	
	for (i=0; i<invalidChars.length; i++) {
		badChar = invalidChars.charAt(i);
		if (email.indexOf(badChar,0)>-1) { 
			return false;
		}
	}
	atPos = email.indexOf("@",1);
	if (atPos == -1) {	
		return false;
	}
	
	if (email.indexOf("@",atPos+1)>-1) {
		return false;
	}
	
	periodPos = email.indexOf(".",atPos);
	if (periodPos == -1) {
		return false;
	}
	
	if (periodPos+3 > email.length) {
		return false;
	}
		return true;
}

//Check number
	
function isNum(passedVal) {
		if (passedVal == "") {
			return false;
		}
		for (i=0; i<passedVal.length; i++) {
			if (passedVal.charAt(i) == " ") {
				return true;
			}
			if (passedVal.charAt(i) < "0") { 
				return false;
			}
			if (passedVal.charAt(i) > "9") {
				return false;
			}
		}
	return true;
}

function validateContact(frm) {
	if (frm.name.value == "") { 
		alert("Please enter your Name");
		frm.name.focus();
		return false;
	}
	if (frm.phone.value == "") { 
		alert("Please enter your Phone Number");
		frm.name.focus();
		return false;
	}
	//Check Email is filled in			
	if (frm.email.value == "") { 
		alert("You must enter your Email Address");
		frm.email.focus();
		return false;		
	}
	//Check email is valid
	if(!validEmail(frm.email.value)) { 
		alert("You must enter a valid E-mail Address");
		frm.email.focus();
		return false;		
	}
	if (frm.enquiry.value == "") { 
		alert("Please enter your Enquiry");
		frm.enquiry.focus();
		return false;
	}
	return true;				
}


function validateRegister(frm) {	
		if(frm.title.selectedIndex == 0) {
			alert('Please select a title');
			frm.title.focus();
			return false;
		}
		if(frm.forename.value == '') {
			alert('Please enter a forename');
			frm.forename.focus();
			return false;
		}		
		if(frm.surname.value == '') {
			alert('Please enter a surname');
			frm.surname.focus();
			return false;
		}	
		if(frm.fleet_size.value == '') {
			alert('Please enter your Fleetsize');
			frm.fleet_size.focus();
			return false;
		}
		if(frm.address.value == '') {
			alert('Please enter your Address');
			frm.address.focus();
			return false;
		}
		if(frm.town_city.value == '') {
			alert('Please enter your Town/City');
			frm.town_city.focus();
			return false;
		}
		if(frm.county.value == '') {
			alert('Please enter your County');
			frm.county.focus();
			return false;
		}
		if(frm.postcode.value == '') {
			alert('Please enter your Postcode');
			frm.postcode.focus();
			return false;
		}
		if(frm.phone.value == '') {
			alert('Please enter your phone number');
			frm.phone.focus();
			return false;
		}	
		if (frm.email.value == "") { 
			alert("You must enter your Email Address");
			frm.email.focus();
			return false;		
		}
		if(!validEmail(frm.email.value )) { 
			alert("You must enter a valid E-mail Address");
			frm.email.focus();
			return false;		
		} 
		if(frm.terms.checked == false) {
			alert('You must agree to the terms and conditions before registering.');
			frm.terms.focus();
			return false;
		}
}

function generateAuth(frm, key) {
	frm.authKey.value = key;
}
var nameTableBody;					
	var nameTable;
	var dropFlag = 0;
	
	function init() {
		nameTableBody = document.getElementById("name_table_body");					
		nameTable = document.getElementById("name_table");			
	}		
	function handleProspectTypeDrop() {
		if(dropFlag == 0) {
			availClients = Sortable.serialize('clientList');							
			hotProspectsSerialised = Sortable.serialize('hotProspects');		
			prospectsSerialised  = Sortable.serialize('prospects');
			convertedClientsSerialised  = Sortable.serialize('convertedClients');
			lapsedClientsSerialised = Sortable.serialize('lapsedClients');
			
			combinedStr = '';		
			combinedStr = availClients + "&" + hotProspectsSerialised + "&"  + prospectsSerialised + "&"  + convertedClientsSerialised + "&"  + lapsedClientsSerialised + "&";
			ajax.setXMLCallBack('dragDropXML()');
			ajax.setMode("xml");		
			ajax.setURL('action.php');			
			ajax.setParam("action","dragDrop");
			ajax.setParam("operation","prospectTypeDrop");
			ajax.setParam("PHPSESS",'<?=session_id()?>');			
			ajax.addQueryString(combinedStr);
			ajax.post();
			dropFlag = 1;
		}
	}		
	function handleLoyaltyDrop() {
		if(dropFlag == 0) {
			availClients = Sortable.serialize('clientList');							
			loyalty1 = Sortable.serialize('loyalty1Rating');		
			loyalty2 = Sortable.serialize('loyalty2Rating');
			loyalty3 = Sortable.serialize('loyalty3Rating');
			combinedStr = '';		
			combinedStr = availClients + "&" + loyalty1 + "&"  + loyalty2 + "&"  + loyalty3 + "&";
			ajax.setXMLCallBack('dragDropXML()');
			ajax.setMode("xml");		
			ajax.setURL('action.php');			
			ajax.setParam("action","dragDrop");
			ajax.setParam("operation","loyaltyDrop");
			ajax.setParam("PHPSESS",'<?=session_id()?>');			
			ajax.addQueryString(combinedStr);
			ajax.post();
			dropFlag = 1;
		}
	}
	function dragDropXML() {
		clicked = 0;
		errorStatus = ajax.response.getElementsByTagName("error");
		if(errorStatus.length > 0) {
			errorStatus = errorStatus[0].firstChild.nodeValue;
			if(errorStatus == 1) {			
				errorMessage();
			}
		} else {
			errorStatus = ajax.response.getElementsByTagName("SiteError");			
			if(errorStatus.length > 0) {
				siteError();
			} else {
				alert('Unable to find valid xml.');
			}
		}		
		dropFlag = 0;
	}
	function insert(frm) {	
		ajax.setXMLCallBack('retrieveXML()');
		ajax.setMode("xml");		
		ajax.setURL('action.php');			
		for(i=0;i<frm.elements.length;i++) {
			elementValue = frm.elements[i].value;
			ajax.setParam(frm.elements[i].name, elementValue);
		}
		ajax.setParam("action","insert");
		ajax.setParam("PHPSESS",'<?=session_id()?>');			
		ajax.post();
	}
	function deleteRecord(id) {	
		ajax.setXMLCallBack('retrieveXML()');
		ajax.setMode("xml");		
		ajax.setURL('action.php');			
		ajax.setParam("id",id);
		ajax.setParam("action","delete");			
		ajax.setParam("PHPSESS",'<?=session_id()?>');			
		ajax.post();
		setTimeout('reloadWindow()',4000);
	}		
	function reloadWindow() {
		self.location.reload();
	}
	function update(frm) {	
		ajax.setXMLCallBack('retrieveXML()');
		ajax.setMode("xml");		
		ajax.setURL('action.php');			
		for(i=0;i<frm.elements.length;i++) {
			if(frm.elements[i].type == "select-one") {
				elementValue = frm.elements[i].options[frm.elements[i].selectedIndex].value;
			} else {
				elementValue = frm.elements[i].value;
			}
			
			ajax.setParam(frm.elements[i].name, elementValue);
		}
		ajax.setParam("action","update");
		ajax.setParam("PHPSESS",'<?=session_id()?>');			
		ajax.post();
	}		
	function hideMessage() {
		messageid = document.getElementById("messagetxt");
		new Effect.Fade(messageid);
	}
	function siteError() {
		errorMsg = '';
		errorXML = ajax.response.getElementsByTagName("ErrorType");
		if(errorXML.length > 0) {
			errorMsg += "Error type: " + errorXML[0].firstChild.data + "<br>";
		}

		errorXML = ajax.response.getElementsByTagName("ErrorMessage");
		if(errorXML.length > 0) {
			errorMsg += "Error message: " + errorXML[0].firstChild.data + "<br>";
		}
					
		errorXML = ajax.response.getElementsByTagName("LineNumber");
		if(errorXML.length > 0) {
			errorMsg += "Line Number: " + errorXML[0].firstChild.data + "<br>";
		}
		
		errorXML = ajax.response.getElementsByTagName("Filename");
		if(errorXML.length > 0) {
			errorMsg += "Filename: " + errorXML[0].firstChild.data + "<br>";					
		}
		errorXML = ajax.response.getElementsByTagName("ErrorNumber");
		if(errorXML.length > 0) {
			errorMsg += "Error Number: " + errorXML[0].firstChild.data + "<br>";					
		}

		errorXML = ajax.response.getElementsByTagName("MysqlError");
		if(errorXML.length > 0) {
			if(errorXML.firstChild) {
				errorMsg += "Mysql Error: " + errorXML[0].firstChild.data;								
			}
		}																		
		messageid = document.getElementById("messagetxt");	
		var msgHtml = '<h1 class="errormsg">Error</h1><p>'+errorMsg+'</p><a href="javascript:hideMessage();" title="Message pane">Close</a>';									
		messageid.innerHTML = msgHtml;	
		new Effect.Appear(messageid);							
	
	}
	function errorMessage() {
		errorMsg = ajax.response.getElementsByTagName("errorMessage");
		errorTxt = '';
		for(i=0;i<errorMsg.length;i++) {
			errorTxt += errorMsg[i].firstChild.data + "<br>";			
		}
		message = document.getElementById("messagetxt");									
		message.style.top = mousey + 'px';			
		message.innerHTML = '<h1 class="errormsg">Error</h1><p>'+errorTxt+'</p><a href="javascript:hideMessage();" title="Message pane">Close</a>';
		new Effect.Appear(message);							
	}
	function successMessage() {
		messageText = ajax.response.getElementsByTagName("messageText");
		messageText = messageText[0].firstChild.nodeValue;
		message = document.getElementById("messagetxt");		
		message.style.top = (mousey-100) + 'px';
		message.style.left = mousex + 'px';
		href = document.location.href;
		len = href.length;
		if (href.substr(len-7)=='add.php' || href.substr(len-8)=='edit.php') Continue="document.location.href='"+href+"?ok'";
		else Continue='hideMessage()';
		message.innerHTML = '<h1 class="successmsg">Success</h1><p>'+messageText + '</p><a href="javascript:'+Continue+'" title="Message pane">Continue</a>';
		new Effect.Appear(message);					
	}
	function retrieveXML() {
		init();		
		errorStatus = ajax.response.getElementsByTagName("error");
		if(errorStatus.length > 0) {
			errorStatus = errorStatus[0].firstChild.nodeValue;
			if(errorStatus == 1) {
				errorMessage();
			} else {
				successMessage();
			}
		} else {
			errorStatus = ajax.response.getElementsByTagName("SiteError");			
			if(errorStatus.length > 0) {
				siteError();
			} else {
				alert('Unable to find valid xml.');
			}
		}
	}		
var IE = document.all?true:false; 
	var mousex=0; 
	var mousey=0;
	 
	 function getMouseXY(e) // works on IE6,FF,Moz,Opera7
	{ 
	  if (!e) e = window.event; // works on IE, but not NS (we rely on NS passing us the event)
	 
	  if (e)
	  { 
		if (e.pageX || e.pageY)
		{ // this doesn't work on IE6!! (works on FF,Moz,Opera7)
		  mousex = e.pageX;
		  mousey = e.pageY;
		  algor = '[e.pageX]';
		  if (e.clientX || e.clientY) algor += ' [e.clientX] '
		}
		else if (e.clientX || e.clientY)
		{ // works on IE6,FF,Moz,Opera7
		  // Note: I am adding together both the "body" and "documentElement" scroll positions
		  //       this lets me cover for the quirks that happen based on the "doctype" of the html page.
		  //         (example: IE6 in compatibility mode or strict)
		  //       Based on the different ways that IE,FF,Moz,Opera use these ScrollValues for body and documentElement
		  //       it looks like they will fill EITHER ONE SCROLL VALUE OR THE OTHER, NOT BOTH 
		  //         (from info at http://www.quirksmode.org/js/doctypes.html)
		  mousex = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		  mousey = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
		  algor = '[e.clientX]';
		  if (e.pageX || e.pageY) algor += ' [e.pageX] '
		}
	  }
	}	
	window.onload = function() {
		document.onmousemove = getMouseXY;
	}