/* REGULAR EXPRESSION FUNCTIONS */

var regxIsNumber = new RegExp("[0-9]+");

var regxIsVin = new RegExp("([0-9|A-Z]{17})");

var regxIsEmail = new RegExp("([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})");

var regxIsWebsite = new RegExp("(https?://)?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?(([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-z_!~*'()-]+\.)*([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.[a-z]{2,6})(:[0-9]{1,4})?((/?)|(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)");

var CUSEMAIL_xmlHttp;
var CUSEMAIL_element_id = '';

function popUp(page, w, h)
{
	var t = (screen.height/2)-255;
	var l = (screen.width/2)-390;
	window.open(page, '_blank', "width="+w+",height="+h+",top="+t+",left="+l+",status=no,menubar=no,toolbar=no,scrollbars=no,resizable=no");	
}

function chkPassMatch(jAttempt1, jAttempt2) { 
	var jRetResult = true;

	if( (getElement(jAttempt1).value == '') || (getElement(jAttempt2).value == '') ) { 
		jRetResult = false; 
		alert(" One or Both Password Field(s) are Blank");
	}
	else
	{
		if( getElement(jAttempt1).value != getElement(jAttempt2).value ) { 
			jRetResult = false; 
			alert("Passwords Do Not Match");
		}
	}
	
	return jRetResult;
}

function checkCustomerEmail(jEmail1, jEmail2, jSection)
{
	
	var jRetResult = true;
	var j1 = getElement(jEmail1);
	var j2 = getElement(jEmail2);
	var j3 = getElement(jSection);
		
	if( (j1.value == '') || (j2.value == '') ) { 
		jRetResult = false; 
	}
	else
	{
		if( j1.value != j2.value ) { 
			jRetResult = false; 
			j3.innerHTML = "<strong>Emails do not Match</strong>";
		}
	}
	
	if(jRetResult)
	{
		j3.innerHTML = "<strong><img src='/i/indicator.gif' width='16' height='16' border='0'>&nbsp;Checking Email</strong>";
		// Check for existing email
		CUSEMAIL_REQUEST_do(j1.value, jSection);
	}
	return jRetResult;	
}

function cancel_service_appointment(cId, aId)
{
	$vRet = false;
	if( (cId != '') && (aId != '') )
	
	if( confirm("Cancel this Appointment. Are you sure?") )
	{
		CUSAPPT_cancel_do(cId, aId);
	}
	return $vRet;
}

function popUpWithOptions(page, w, h, jOptions)
{
	var jDefaultOptions = "";
	if(jOptions != '') {
		jDefaultOptions = "," + jOptions;	
	}

	/* status=no,menubar=no,toolbar=no,scrollbars=no,resizable=no */
	var t = (screen.height/2)-255;
	var l = (screen.width/2)-390;
	window.open(page, '_blank', "width="+w+",height="+h+",top="+t+",left="+l+jDefaultOptions);	
}


function getElement(id){
  if(document.getElementById) {    // test the most common method first
      return document.getElementById(id);
  } else if(document.all) {         // test older versions of IE
      return document.all[id];
  } else if(document.layers) {      // test older versions of Netscape
      return document.layers[id];
  } else {                          // not sure what to do...return null
      return null;
  }
}

function TabNext(obj,event,len,next_field) 
{
	var field_length=0;
	if (event == "down") 
	{
		field_length=obj.value.length;
	}
	else if (event == "up") 
	{
		if (obj.value.length != field_length) 
		{
			field_length=obj.value.length;
			if (field_length == len) 
			{
				next_field.focus();
			}
		}
	}
}

function USERNAME_to_EMAIL(username_field, email_field)
{
	var emailEnding = "@quirkcars.com";
	var user = getElement(username_field);
	var email = getElement(email_field);	
	
	if(user.value == '')
	{
		email.value = '';
	}
	else
	{
		email.value = user.value + emailEnding;		
	}
	var userString = user.value;
	var emailString = email.value;

	userString = userString.toString();
	emailString = emailString.toString();
	
	user.value = userString.toLowerCase();
	email.value = emailString.toLowerCase();
}

function master_doConfirmDeleteEmployee()
{
	var c;
	c = confirm("This will PERMANENTLY DELETE any selected employees... Are You Sure?");
	return c;
}

function show_email()
{
	emailWin = window.open('/qmail/', '_blank');	
}

function trim_string(str) {
	var whitespace = ' \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000';
	for (var i = 0; i < str.length; i++) {
		if (whitespace.indexOf(str.charAt(i)) === -1) {
			str = str.substring(i);
			break;
		}
	}
	for (i = str.length - 1; i >= 0; i--) {
		if (whitespace.indexOf(str.charAt(i)) === -1) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
}

/* NAVIGATION DROPDOWN VARIABLES AND FUNCTIONS */

jQuirkNav = new Array();
jQuirkNav[0] = "qnav-stores-list";
jQuirkNav[1] = "qnav-parts-list";
jQuirkNav[2] = "qnav-admin-list";
jQuirkNav[3] = "qnav-service-list";
jQuirkNav[4] = "qnav-careers-list";
jQuirkNav[5] = "qnav-docs-list";

function show_quirk_nav_section(jNavSectionId) {
	var myElement;
	hide_quirk_nav_sections();
	myElement = getElement(jQuirkNav[jNavSectionId]);
	myElement.style.display = "block";	
	//myElement.style.left = MOUSEPOSITION_X + "px";	
} 	

function hide_quirk_nav_sections() {
	var myElement;
	for(var i=0; i < jQuirkNav.length; i++) {
		myElement = getElement(jQuirkNav[i]);
		myElement.style.display = "none";
	}
} 	

function hover_quirk_nav(aRow, aClass) {
	aRow.className = aClass;
}


/* END OF NAVIGATION DROPDOWN VARIABLES AND FUNCTIONS */

function CUSAPPT_createXMLHttpRequest() {
  if (window.ActiveXObject) {
      CUSAPPT_xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } 
  else if (window.XMLHttpRequest) {
      CUSAPPT_xmlHttp = new XMLHttpRequest();
  }
}

function CUSAPPT_cancel_do(cId, aId) {
	CUSAPPT_createXMLHttpRequest();    
  var url = "/includes/ajax/ajax_cancel_service_appointment.inc.php?timeStamp=" + new Date().getTime();
  var queryString = "jCustId=" + cId + "&jApptId=" + aId;
  CUSAPPT_xmlHttp.open("POST", url, true);
  CUSAPPT_xmlHttp.onreadystatechange = CUSAPPT_handleSavedData;
  CUSAPPT_xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");   
  CUSAPPT_xmlHttp.send(queryString);
}

function CUSAPPT_handleSavedData() {
	if(CUSAPPT_xmlHttp.readyState == 4) {
    if(CUSAPPT_xmlHttp.status == 200) {
    	jResponse = trim_string(CUSAPPT_xmlHttp.responseText);
    	if(jResponse == '1') {
				location.href="/my-account/service-appointments";
  		}
  		else
  		{
  			var jStr = "Error: Your Appointment could not be Cancelled!";
				alert(jStr);
  		}
    }
  }
}










function CUSEMAIL_createXMLHttpRequest() {
  if (window.ActiveXObject) {
      CUSEMAIL_xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } 
  else if (window.XMLHttpRequest) {
      CUSEMAIL_xmlHttp = new XMLHttpRequest();
  }
}

function CUSEMAIL_REQUEST_do(jEmail, jSection) {
	CUSEMAIL_element_id = jSection;
	var cLayer = getElement(CUSEMAIL_element_id);
	CUSEMAIL_createXMLHttpRequest();    
  var url = "/includes/ajax/ajax_check_customer_email.inc.php?timeStamp=" + new Date().getTime();
  var queryString = "jEmail=" + jEmail;
  CUSEMAIL_xmlHttp.open("POST", url, true);
  CUSEMAIL_xmlHttp.onreadystatechange = CUSEMAIL_handleSavedData;
  CUSEMAIL_xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");   
  CUSEMAIL_xmlHttp.send(queryString);
}

function CUSEMAIL_handleSavedData() {
	if(CUSEMAIL_xmlHttp.readyState == 4) {
    if(CUSEMAIL_xmlHttp.status == 200) {
    	jResponse = trim_string(CUSEMAIL_xmlHttp.responseText);
    	if(jResponse != '') {
    		var cLayer = getElement(CUSEMAIL_element_id);
    		cLayer.innerHTML = jResponse;
  		}
  		else
  		{
    		var cLayer = getElement(CUSEMAIL_element_id);
    		cLayer.innerHTML = "&nbsp;";
  		}
    }
  }
}

var NOC_xmlHttp = '';
var jReponsePanelId = '';
var jSubmissionPanelId = '';

function NOC_createXMLHttpRequest() {
  if (window.ActiveXObject) {
      NOC_xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } 
  else if (window.XMLHttpRequest) {
      NOC_xmlHttp = new XMLHttpRequest();
  }
}

function NOC_rsvp(jTempSubmissionPanelId, jTempReponsePanelId) 
{
	jReponsePanelId = jTempReponsePanelId;
	jSubmissionPanelId = jTempSubmissionPanelId;	
	var jErrors = "";
	var jCustomerName = getElement("txt_name").value;
	var jEmail1 = getElement("txt_email_1").value;
	var jEmail2 = getElement("txt_email_2").value;
	var jStoreLetter = getElement("hid_store_letter").value;
	var jClinicDate = "";
	var svyForm = getElement("newOwnersClinicForm");
	var jReponsePanel = getElement(jReponsePanelId);
	var jSubmissionPanel = getElement(jSubmissionPanelId);

	// check for errors/blanks

	if( jCustomerName == '' )
	{
		jErrors += "<li align='left'>Please enter your Name</li>";						
	}  

	if( jEmail1 == '' )
	{
		jErrors += "<li align='left'>Please enter your Email Address</li>";					
	}  

	if( jEmail2 == '' )
	{
		jErrors += "<li align='left'>Please confirm your Email Address</li>";				
	}  

	if( ( jEmail1 != '' ) && ( jEmail2 != '' ) )
	{
		if( jEmail1 != jEmail2 )
		{
			jErrors += "<li align='left'>Emails do not Match.</li>";			
		}  		
	}  

	var jRadio = svyForm.elements["rad_clinic_date"];
	for(var i = 0; i < jRadio.length; i++) 
	{ 
		if(jRadio[i].checked) 
		{
			jClinicDate = jRadio[i].value;
		}
	}	
	
	if( jClinicDate == '' )
	{
		jErrors += "<li align='left'>Please choose a Clinic Date</li>";				
	}  

	if( jErrors == '' )
	{  
   	jSubmissionPanel.style.display = "none";
		jReponsePanel.innerHTML = "<strong>Processing...Please Wait...</strong>";
   	jReponsePanel.style.display = "block";
   	
		NOC_createXMLHttpRequest();    
	  var url = "/includes/ajax/ajax_noc_register.inc.php?timeStamp=" + new Date().getTime();
	  var queryString = "name=" + jCustomerName + "&email=" + jEmail1 + "&letter=" + jStoreLetter + "&cDate=" + jClinicDate;
	  NOC_xmlHttp.open("POST", url, true);
	  NOC_xmlHttp.onreadystatechange = NOC_handleSavedData;
	  NOC_xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");   
	  NOC_xmlHttp.send(queryString);
	}
	else
	{
		jReponsePanel.innerHTML = "<strong>Please Correct the Following Errors:</strong><br /><ul align='left'>" + jErrors + "</ul>";
   	jReponsePanel.style.display = "block";
	}
}

function NOC_handleSavedData() {
	var jReponsePanel = getElement(jReponsePanelId);
	var jSubmissionPanel = getElement(jSubmissionPanelId);
	if(NOC_xmlHttp.readyState == 4) {
    if(NOC_xmlHttp.status == 200) {
    	jResponse = trim_string(NOC_xmlHttp.responseText);
    	// decide if the submission area can be closed
    	if(jResponse == '1') 
    	{
    		// success
	    	jReponsePanel.innerHTML = "<h2>Thanks. We'll see you there!</h2>";
	    	jReponsePanel.style.display = "block";
				getElement("txt_name").value = '';
				getElement("txt_email_1").value = '';
				getElement("txt_email_2").value = '';
	    	jSubmissionPanel.style.display = "none";
  		}
  		else
  		{
  		  // errors
	    	jSubmissionPanel.style.display = "block";
	    	jReponsePanel.innerHTML = jResponse;
	    	jReponsePanel.style.display = "block";
  		}
    }
  }
}

function NOC_hide_all(jTempSubmissionPanelId, jTempReponsePanelId)
{
	getElement("txt_name").value = '';
	getElement("txt_email_1").value = '';
	getElement("txt_email_2").value = '';
	getElement("hid_store_letter").value = '';
	getElement(jTempReponsePanelId).innerHTML='';
	getElement(jTempReponsePanelId).style.display='none';
	getElement(jTempSubmissionPanelId).style.display='none';
}