//**********************************************************************************
//	Author: David Zimmer
//
//	Date: September 24, 2000
//
//  Description: This file contains common javascript methods.
//
//**********************************************************************************

function isNumber(inVar)
{
	//check for a character that is not a number
	for( var i = 0; i < inVar.length; i++)
	{
		if(inVar.charCodeAt(i) < 48 || inVar.charCodeAt(i) > 57)
		{
			if(inVar.charCodeAt(i) == 46)
			{
				//do nothing
			}
			else
			{
				return false;					
			}				
		}
		
	}	//end for 				

	return true;
	
}	//end function isNumber


function isNumberInString(inVar)
{
	for( var i = 0; i < inVar.length; i++)
	{
		//alert("invar char code = " + inVar.charCodeAt(i) );
		
		if(inVar.charCodeAt(i) >= 48 && inVar.charCodeAt(i) <=57)
		{
			//number found return true
			return true;			
		}		
	
	}	//end for
	
	return false;
}



function validateEmail(inEmail)
{
	
	var atPtrn;
	var dotPtrn;
	var iAtCount;
	var iWhitespaceCount;
	var regObj;
	var bAt;
	var bDot;
		
	atPtrn = "@";
	dotPtrn = ".";
	iAtCount = 0;
	iWhitespaceCount = 0;
	
	regObj = new RegExp(atPtrn);
	bAt = regObj.test(inEmail);
	
	regObj = new RegExp(dotPtrn);
	bDot = regObj.test(inEmail);
	
	if(!bDot || !bAt)
	{
		return false;
	}
			
	for(var i = 0; i < inEmail.length; i++)
	{
		if(inEmail.charCodeAt(i) == 64)
		{
			iAtCount++;
		}
		if(inEmail.charCodeAt(i) == 32)
		{
			iWhitespaceCount++;
		}		
	}
	
	if(iAtCount > 1)
	{
		return false;
	}
	
	if(iWhitespaceCount > 0)
	{
		return false;
	}
			
	if((inEmail.length - inEmail.lastIndexOf(".")) < 2)
	{
		alert(inEmail.length);
		alert(inEmail.lastIndexOf("."));
	
		return false;
	}
		
	return true;
	
}	//end function validateEmail

//***************************************************************************
// Author: David Zimmer 
// Date:   August 23, 2000
//
// Description: This method will evaluate the password and confirm password the user has 
//				entered.
//***************************************************************************
function checkPassword(inPassword, inConfirm)
{
	var regObj = new RegExp(inPassword);
	var result;
	
		
	if(inPassword.length != inConfirm.length)
	{
		return false;
	}
	
	result = regObj.test(inConfirm);
	return result;
	
}	//end function checkPassword

function checkPwdIntegrity(inpwd)
{

	if(inpwd.length < 5)
	{
		return false;
	}
	else
	{
		return true;
	}
}

function evaluateForInvalidHTML(inString)
{
	var appletPtrn;
	var ahrefPtrn;
	var metaPtrn;
	var scriptPtrn;
	var javascriptPtrn;
	var includePtrn;
	var bodyPtrn;
	var htmlPtrn;
	var tablePtrn;
	var rowPtrn;
	var cellPtrn;
	var htmlEndTagPtrn;
	var regObj;
	var bResult;
	var httpPtrn;
	var boldPtrn;
	var underlinePtrn;
	var brPtrn;
	var pagePtrn;
	var fontPtrn;
	
	bResult = false;
	
	appletPtrn = "<applet";
	ahrefPtrn = "<a href";
	metaPtrn = "<meta";
	scriptPtrn = "<script";
	javascriptPtrn = "javascript";
	includePtrn = "#include";
	bodyPtrn = "<body";
	htmlPtrn = "<html";
	tablePtrn = "<table";
	rowPtrn = "<tr";
	cellPtrn = "<td";
	htmlEndTagPtrn = "</";
	httpPtrn = "http";
	boldPtrn = "<b";
	underlinePtrn = "<u";
	brPtrn = "<br";
	pagePtrn = "<p";	
	fontPtrn = "<font";

	//applet pattern test
	regObj = new RegExp(appletPtrn, "i");
	bResult = regObj.test(inString);
	
	if(bResult)
	{
		return false;
	}
		
	//html pattern test
	regObj = new RegExp(ahrefPtrn, "i");
	bResult = regObj.test(inString);
	
	if(bResult)
	{
		return false;
	}
	
	//metatag pattern test
	regObj = new RegExp(metaPtrn, "i");
	bResult = regObj.test(inString);
	
	if(bResult)
	{
		return false;
	}
		
	//script pattern test
	regObj = new RegExp(scriptPtrn, "i");
	bResult = regObj.test(inString);
	
	if(bResult)
	{
		return false;
	}
	
	//JavaScript pattern test
	regObj = new RegExp(javascriptPtrn, "i");
	bResult = regObj.test(inString);
	
	if(bResult)
	{
		return false;
	}
	
	//Include pattern test
	regObj = new RegExp(includePtrn, "i");
	bResult = regObj.test(inString);
	
	if(bResult)
	{
		return false;
	}
	
	//Body pattern test
	regObj = new RegExp(bodyPtrn, "i");
	bResult = regObj.test(inString);
	
	if(bResult)
	{
		return false;
	}
	
	//html pattern test
	regObj = new RegExp(htmlPtrn, "i");
	bResult = regObj.test(inString);
	
	if(bResult)
	{
		return false;
	}
	
	//table pattern test
	regObj = new RegExp(tablePtrn, "i");
	bResult = regObj.test(inString);
	
	if(bResult)
	{
		return false;
	}
		
	//row pattern test
	regObj = new RegExp(rowPtrn, "i");
	bResult = regObj.test(inString);
	
	if(bResult)
	{
		return false;
	}
	
	//cell pattern test
	regObj = new RegExp(cellPtrn, "i");
	bResult = regObj.test(inString);
	
	if(bResult)
	{
		return false;
	}
	
	//htmlEndTag pattern test
	regObj = new RegExp(htmlEndTagPtrn, "i");
	bResult = regObj.test(inString);
	
	if(bResult)
	{
		return false;
	}
	
	//http pattern test
	regObj = new RegExp(httpPtrn, "i");
	bResult = regObj.test(inString);

	if(bResult)
	{
		return false;
	}
	
	//bold pattern test
	regObj = new RegExp(boldPtrn, "i");
	bResult = regObj.test(inString);

	if(bResult)
	{
		return false;
	}	
	
	//underline pattern test
	regObj = new RegExp(underlinePtrn, "i");
	bResult = regObj.test(inString);
	
	if(bResult)
	{
		return false;
	}
	
	//break pattern test
	regObj = new RegExp(brPtrn, "i");
	bResult = regObj.test(inString);
	
	if(bResult)
	{
		return false;
	}
	
	//page pattern test
	regObj = new RegExp(pagePtrn, "i");
	bResult = regObj.test(inString);
	
	if(bResult)
	{
		return false;
	}
	
	//font pattern test
	regObj = new RegExp(fontPtrn, "i");
	bResult = regObj.test(inString);
	
	if(bResult)
	{
		return false;
	}
	
	return true;


}	//end function evaluateForInvalidHTML


function validatePictureUpload(inPicObj)
{
	var objReg;
	var bmpPtrn;
	var jpgPtrn;
	var gifPtrn;
	var tifPtrn;
	var bUpLoad1;
	
	var bRes;
	
	
	bmpPtrn = ".bmp";
	jpgPtrn = ".jpg";
	gifPtrn = ".gif";
	tifPtrn = ".tif";
	bUpLoad1 = false;
	
	//alert(inForm.name + ' ' + inPictName);

	if(inPicObj.value != "")
	{
		objReg = new RegExp(bmpPtrn, "i");
						
		if(objReg.test(inPicObj.value))
		{
			bUpLoad1 = true;
		}
		
		objReg = new RegExp(jpgPtrn, "i");
		if(objReg.test(inPicObj.value))
		{
			bUpLoad1 = true;
		}
		
		objReg = new RegExp(gifPtrn, "i");
		if(objReg.test(inPicObj.value))
		{
			bUpLoad1 = true;
		}
		
		objReg = new RegExp(tifPtrn, "i");
		if(objReg.test(inPicObj.value))
		{
			bUpLoad1 = true;
		}
		
		if(!bUpLoad1)
		{
			alert('Only file types of bmp, tif, gif, or jpg are allowed to be uploaded. Please choose the appropriate type.');
			inPicObj.focus();
			inPicObj.select();
			return false;
		}	
		
		if(!checkForDots(inPicObj.value))
		{
			alert('The filename has more than one period in it. Please make sure that you have only one period in the filename. i.e ' + String.fromCharCode(34) + 'filename.jpg' + String.fromCharCode(34));
			inPicObj.focus();
			inPicObj.select();
			return false;
		}
		
		/*if(!checkForSpaces(inPicObj.value))
		{
			alert('The filename you entered contains spaces. Please rename the file and submit your request again.');
			inPicObj.focus();
			inPicObj.select();
			return false;
		}
		*/
	}	
	
	return true;
	
}	//end validatePictureUpload function

function checkForDots(inString)
{
	var iPos1;
	var iPos2;
	var iPosOfLastSlash;
	var sFileNamePortion;
	
	iPosOfLastSlash = inString.lastIndexOf("\\");	
	//alert('position of last slash ' + iPosOfLastSlash);	
	
	sFileNamePortion = inString.substr(iPosOfLastSlash+1);
	//alert('FileName portion : ' + sFileNamePortion);	
	
	iPos1 = sFileNamePortion.indexOf(".");
	iPos2 = sFileNamePortion.lastIndexOf(".");
	
	//alert('Pos. of dots : ' + iPos1 + ' ' + iPos2);
	
	if(iPos1 != iPos2)
	{
		return false;
	}
	
	return true;
}

function checkForSpaces(inString)
{
	//alert('in checkForSpaces in common.js');
	
	//alert("inString = " + inString);

	var iWhitespaceCount;
	
	var iPosition;
		
	iPosition = inString.lastIndexOf('\\');
	
	//alert("iPosition = " + iPosition);
	//alert("inString.length = " + inString.length);
	
	iWhitespaceCount = 0;

	for(var i = iPosition; i < inString.length; i++)
	{
		if(inString.charCodeAt(i) == 32)
		{
			iWhitespaceCount++;
		}		
	}
	
	//alert("iWhitespaceCount = " + iWhitespaceCount);
	
	if(iWhitespaceCount > 0)
	{
		return false;
	}
	
	return true;
}

function popup(url, width, height, resizable, scrollbars)
{
	var append = "";
	if (resizable) append = append + ",resizable";
	if (scrollbars) append = append + ",scrollbars";
	window.open(url, null, 'width=' + width + ',height=' + height + append);
}

function buildCookieArrays(strCookieName, inKeyValArray)
{
	var strCookie;
	var iDimension;
	var flag;
	var strAppendToCookie;
	
	//alert(strCookieName);
	
	//alert(inKeyValArray[0][0]);
	//alert(inKeyValArray[1][0]);
	
	strAppendToCookie="";
	
	//count the # of keys to manipulate
	var countArray = new Array();
	var iKeyValuePairs;
	
	countArray = inKeyValArray[0];
		
	iKeyValuePairs = countArray.length;
			
	strCookie = getCookie(strCookieName);
	//alert('COOKIEVALUE = ' + strCookie);
		
	if(strCookie != null)
	{
		//BREAK COOKIE INTO ARRAY OF KEY/VALUE PAIRS
		var a = strCookie.split('&');
				
		var strTemp;
		strTemp = "";
		
		//CREATE STRING TO SPLIT INTO A 1 DIMENSIONAL ARRAY
		for(var y = 0; y < a.length; y++)
		{			
			strTemp = strTemp + a[y];
			
			if(y < a.length - 1)
			{
				strTemp = strTemp + "=";
			}
		}
		
		//alert(strTemp);
				
		var tempArray = new Array();
		tempArray[0] = strTemp;	
	
		//CREATE 1 DIMENSIONAL ARRAY FROM TEMP STRING
		var cookieArray = new Array();
		
		var cookieArray = tempArray[0].split('=');
		
		//alert("cookie Array " + cookieArray);
	
		//SET KEYS AND VALUES
		for(var x = 0; x < iKeyValuePairs; x++)
		{
			flag = false;
		//	alert("flag = " + flag);
			
			for(var j = 0; j < cookieArray.length; j++)
			{
				if(cookieArray[j] == inKeyValArray[0][x])
				{
					flag = true;
					cookieArray[j+1] = inKeyValArray[1][x];	
					break;
				}
			} //end forloop
			
		//	alert("before j comp: " + j + " " + flag);
		//	alert(cookieArray.length);
		//	var iTemp;
		//	iTemp = cookieArray.length - 1;
		//	alert(iTemp);
			if(j == cookieArray.length)
			{
				if(flag == false)
				{
					strAppendToCookie = strAppendToCookie + "&" + inKeyValArray[0][x] + "=" + inKeyValArray[1][x];
				}
			}
		} //end forloop
	
		//WRITE TO COOKIE
		iDimension = "1";
		
		setCookie(strCookieName, iDimension, cookieArray, strAppendToCookie);
	}
	
	else
	{
		iDimension = "2";
	
		//WRITE TO COOKIE
		setCookie(strCookieName, iDimension, inKeyValArray, strAppendToCookie);
	}
				
}

function getCookie(name)
{	
    var start = document.cookie.indexOf(name+"=");
    var len = start+name.length+1;
    if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
    if (start == -1) return null;
    var end = document.cookie.indexOf(";",len);
    if (end == -1) end = document.cookie.length;
    
    return unescape(document.cookie.substring(len,end));
}

function getCookieKeyValue(name, key)
{
	var theCookie;
	var pos;
	var strKeyVal;
	var posOfAmp;
	var posEqual;
	var theValue;
	
	theCookie = getCookie(name);
	if(theCookie == null)
	{
		//no cookie yet... 
		return -1;
	}
	
	pos = theCookie.indexOf(key);
	
	//alert(theCookie);
	//alert(pos); 
	
	if(pos == -1)
	{
		return pos;
	}
	else
	{	
		strKeyVal = theCookie.substring(pos);
		//alert(strKeyVal);
	
		//find index of next "&" if -1 then look for "=" and return value
		posOfAmp = strKeyVal.indexOf("&");
		//alert("posOfAmp " + posOfAmp);
		if(posOfAmp == -1)
		{
			//end of cookie string 
			posEqual = strKeyVal.indexOf("=");
			//alert(posEqual);
			
			theValue = strKeyVal.substring(posEqual+1);
			//alert(theValue);
		}
		else
		{
			//extract string from current position to next "&"
			theValue = strKeyVal.substring(0, posOfAmp);
			//alert(theValue);
			
			//find position of "=" and return value
			posEqual = theValue.indexOf("=");
			//alert(posEqual);
			
			theValue = theValue.substring(posEqual+1);
			//alert(theValue);
			
		}
		
		return theValue;	
		
	}	//end pos evaluation
		
}

function setCookie(name, numberDimensions, keyValueArray, strAppend)
{
	var dDate;
	var nextYear;
	var strCookieValues;
	
	//alert("appending " + strAppend);
	
	strCookieValues = "";
	
	dDate = new Date();	
	dDate.setFullYear(dDate.getFullYear() + 1 );

	if(numberDimensions == 2)
	{
		for(i = 0; i < keyValueArray.length - 1; i++)
		{
			strCookieValues = strCookieValues + keyValueArray[0][i] + "=" + keyValueArray[1][i] ;
			
			if(i < keyValueArray.length - 2)
			{
				strCookieValues = strCookieValues + "&";
			}
		}
	}
	else
	{
		for(i = 0; i < keyValueArray.length - 1; i+=2)
		{
			strCookieValues = strCookieValues + keyValueArray[i] + "=" + keyValueArray[i+1] ;
			
			if(i < keyValueArray.length - 2)
			{
				strCookieValues = strCookieValues + "&";
			}
		}
	}
	
	document.cookie = name + "=" + strCookieValues + strAppend + ';expires=' + dDate.toGMTString() + ';path=/';
	
}

function spawnNewBrowser(url, name, features, replace)
{	
	window.open(url, name, features, replace);	
}

function validateSubmitEmailForm(inForm)
{
	if(inForm.txtSndrEmailName.value == "")
	{
		alert('The name field is required. Please enter in your name.');
		inForm.txtSndrEmailName.focus();
		return false;	
	}
	
	if(inForm.txtPhoneNumber.value == "")
	{
		alert('The phone number is a required field, please enter in a phone number.');
		inForm.txtPhoneNumber.focus();
		inForm.txtPhoneNumber.select();
		return false;
	}
	
	if(!validateEmail(inForm.txtSndrEmailAddress.value))
	{
		alert('Please enter in a valid email address. Such as username@servername.com');
		inForm.txtSndrEmailAddress.focus();
		inForm.txtSndrEmailAddress.select();
		return false;
	}
	
	if(inForm.txaMessage.value == "")
	{
		alert('Please provide the seller with a brief message.');
		inForm.txaMessage.focus();
		return false;
	}
	return true;


}	//end validateSubmitEmailForm function

/*
<method>evalReq</method>
<params arg1="inObj">HTML Element object</params>
<params arg2="name">Real description of what the element is</params>
<author>Dave Zimmer</author>
<date>Sept. 19, 2001</date>
<desc>Checks to make sure that the HTML Element is not empty.
</desc>
*/
function evalReq(inObj, name)
{
	if(inObj.value == "")
	{
		alert(name + ' is a required field. Please fill in ' + name);
		inObj.focus();
		return false;
	}
	
	return true;

}	//end evalReq method

function loadNavigation()
{
	///////added to be an included on all pages JOwens 9-20-01 /////////////
	
	MM_preloadImages('/images/NewHeaderSEARCHwhite.jpg','/images/NewHeaderSELLwhite.jpg','/images/NewHeaderCOMPAREwhite.jpg','/images/NewHeaderACCOUNTwhite.jpg','/images/NewHeaderDEALERSwhite.jpg')
}
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_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_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_findObj(n, d) { //v4.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);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}


function DisableControl(controlId) {
    document.getElementById(controlId).disabled = true;
}

function EnableControl(controlId) {
    document.getElementById(controlId).disabled = false;
}

function DisableControl_SetTimeout(controlId, interval) {
    setTimeout("DisableControl('" + controlId + "')", interval);
    
    //this will re-enable the button after 2 seconds in case of failed validation
    setTimeout("EnableControl('" + controlId + "')", 2000);
}

function btnSubmit_Click(control) {
    DisableControl_SetTimeout(control.id, 0);
    
}