/* Copyright Commcam Limited 2009. All rights reserved. (See licence/licence.txt) */
var hRotator = 0;
var _strCurrentAd = "ad1-1";

function adRotator(strId)
{
  _strCurrentAd = strId;
  hRotator = setTimeout("adRotatorDown('" + strId + "')", 4000);
}

function adPositionClick(event, strNextId)
{
  var objObject = document.getElementById(_strCurrentAd);
  clearTimeout(hRotator);
  iOpacity = 0;
  
  objObject.style.opacity = (iOpacity / 100);
  objObject.style.MozOpacity = (iOpacity / 100);
  objObject.style.KhtmlOpacity = (iOpacity / 100);
  objObject.style.filter = "alpha(opacity:" + iOpacity + ")";
  objObject.setAttribute("opacity", iOpacity);
  objObject.style.display = "none";

  objObject = document.getElementById(strNextId);
  objObject.style.opacity = 1
  objObject.style.MozOpacity = 1
  objObject.style.KhtmlOpacity = 1;
  objObject.style.filter = "alpha(opacity: 100)";
  objObject.setAttribute("opacity", 100);
  objObject.style.display = "block";

  adRotator(strNextId);
  
  return false;
}

function adRotatorDown(strId)
{
	var objObject = document.getElementById(strId);

	iOpacity = objObject.getAttribute("opacity");

	_strCurrentAd = strId;
	
	objObject.style.opacity = (iOpacity / 100); 
  objObject.style.MozOpacity = (iOpacity / 100); 
  objObject.style.KhtmlOpacity = (iOpacity / 100); 
  objObject.style.filter = "alpha(opacity:" + iOpacity + ")";
  objObject.setAttribute("opacity", iOpacity);
  
  if (iOpacity > 0)
  {
    iOpacity = iOpacity - 2;

    objObject.setAttribute("opacity", iOpacity);

    hRotator = setTimeout("adRotatorDown('" + strId + "')", 6);
  }
  else
  {
    objObject.style.display = "none";
    strNextId = objObject.getAttribute("nextId");

    if (strNextId)
    {
      adRotatorUp(strNextId, 0, 100);
    }
  }
  
}


function adRotatorUp(strId, iOpacity, iTo)
{
  var objObject = document.getElementById(strId);
  _strCurrentAd = strId;
  
  objObject.style.opacity = (iOpacity / 100);
  objObject.style.MozOpacity = (iOpacity / 100);
  objObject.style.KhtmlOpacity = (iOpacity / 100);
  objObject.style.filter = "alpha(opacity:" + iOpacity + ")";
  objObject.style.display = "block";
  objObject.setAttribute("opacity", iOpacity);
  
  if (iOpacity <= iTo)
  {
    iOpacity = iOpacity + 2;
    objObject.setAttribute("opacity", iOpacity);
    hRotator = setTimeout("adRotatorUp('" + strId + "', " + iOpacity + ", " + iTo + ")", 6);
  }
  else
  {

   hRotator = setTimeout("adRotatorDown('" + strId + "')", 4000);
  }

}

function clearDefaultValue(objInput)
{
  if (objInput.getAttribute("clearedDefault") != "true")
  {
    objInput.value = "";
    objInput.setAttribute("clearedDefault", "true");
  }
}

String.prototype.isValidCardNumber = function(){	
	// replace any white space in the card number	
	var number = this.replace(/\s+/g, '') ;	
	
    if (number.match("1111222233334444"))
    {
        return false;
    }
	
	//replace if contains non-numbers	
	if(number.match(/\D/))
	{		
		return false ;	
	}	
	// convert to array and reverse the number	
	number = number.split('').reverse().join('') ;	
	
	// loop through the number one digit at a time	
	// double the value of every second digit starting	
	// from the right, and concatenate the new values 	
	// with the unaffected digits	
	var digits = '';	
	for(var i = 0; i < number.length; i++)
	{		
		digits += '' + ((i%2) ?			number.charAt(i) * 2 :			number.charAt(i)) ;	
	}	
	
	// add all of the single digits together	
	var sum = 0 ;	
	for (var i = 0; i < digits.length; i++)
	{		
		sum += (digits.charAt(i) * 1) ;	
	}	//alert(sum) ;	
	
	// valid card numbers will be transformed into	// a multiple of 10	
	
	return (sum % 10) ? false : true ;
}


function checkQuantity(objInput)
{
	if (objInput.value == "0" || objInput.value == "")
	{
		objInput.value = 1;
	}
}

function numericOnly(objEvent)
{
	var objReg = new RegExp("^\d*\.?\d*$");   
	var objEvent = objEvent || window.event;  
	var strKeyCode = objEvent.keyCode || objEvent.which;

	var strKey = String.fromCharCode( strKeyCode );
	var strRegEx = /[0-9]|\./;
	
	if (!strRegEx.test(strKey) && strKeyCode != "9" &&strKeyCode != "8") 
	{ 
		objEvent.returnValue = false;
		
		// Not valid for IE
		try
		{
			objEvent.preventDefault();
		}
		catch (e){}
	}
}


function selectCategory(strCode)
{
	startLoading("_selectCategory('" + strCode + "')");
}

function _selectCategory(strCode)
{
	var objAjax = new CAjax();
	var objDiv;
	
	if (objAjax.open("dynamic/selectCategory.php?catCode=" + strCode, true))
	{
		objDiv = document.getElementById("bodyC");
		objDiv.innerHTML = objAjax.getResponse();		
	}	
	
	endLoading();
}

function showNotes(strProductCode)
{
	var strDivId = "notes_" + strProductCode;
	var objDiv = document.getElementById(strDivId);
	
	if (objDiv.getAttribute("displayed") == "true")
	{
		
		CollapseDiv(strDivId);
		objDiv.setAttribute("displayed", "false");
	}
	else
	{
		ExpandDiv(strDivId);
		objDiv.setAttribute("displayed", "true");
	}
}

function HExpandDiv(strDivId)
{
	var objDiv = document.getElementById(strDivId);
	var iWidth = parseInt(objDiv.getAttribute("origWidth"));

	if (objDiv.getAttribute("expanded") != "true")
	{
		objDiv.setAttribute("expanded", "true");
		objDiv.setAttribute("collapsed", "false");
		
		//objDiv.style.height = 0;
		objDiv.style.overflow = "hidden";
		
		objDiv.style.display = "block";

		if (!iWidth)
		{
			objDiv.setAttribute("origWidth", objDiv.offsetWidth);
			iWidth = objDiv.offsetWidth;
		}

		objDiv.style.display = "none";
		
		objDiv.style.width = 0;

		setTimeout("_HExpandDiv('" + strDivId + "', 0, " + iWidth + ")", 30);
	}
}

function _HExpandDiv(strDivId, iWidth, iMaxWidth)
{
	var objDiv = document.getElementById(strDivId);

	if (iWidth == 0)
	{
		objDiv.style.display = "block";
	}

	iWidth += 5;
	
	if (iWidth < iMaxWidth)
	{
		
		objDiv.style.width = iWidth;
		setTimeout("_HExpandDiv('" + strDivId + "', " + iWidth + ", " + iMaxWidth + ")", 20);
	}
	else
	{
		objDiv.style.width = iMaxWidth;
	}
}

function ExpandDiv(strDivId)
{
	var objDiv = document.getElementById(strDivId);
	var iHeight = parseInt(objDiv.getAttribute("origHeight"));

	if (objDiv.getAttribute("expanded") != "true")
	{
		objDiv.setAttribute("expanded", "true");
		objDiv.setAttribute("collapsed", "false");
		
		//objDiv.style.height = 0;
		objDiv.style.overflow = "hidden";
		objDiv.style.whiteSpace = "nowrap";
		objDiv.style.display = "block";

		if (!iHeight)
		{
			objDiv.setAttribute("origHeight", objDiv.offsetHeight);
			iHeight = objDiv.offsetHeight;
		}

		objDiv.style.display = "none";
		
		objDiv.style.height = 0;

		setTimeout("_ExpandDiv('" + strDivId + "', 0, " + iHeight + ")", 30);
	}
}

function _ExpandDiv(strDivId, iHeight, iMaxHeight)
{
	var objDiv = document.getElementById(strDivId);

	if (iHeight == 0)
	{
		objDiv.style.display = "block";
		
	}

	iHeight += 5;
	
	if (iHeight < iMaxHeight)
	{
		
		objDiv.style.height = iHeight;
		setTimeout("_ExpandDiv('" + strDivId + "', " + iHeight + ", " + iMaxHeight + ")", 20);
	}
	else
	{
		objDiv.style.height = iMaxHeight;
		objDiv.style.height = "auto";
	}
}

function HCollapseDiv(strDivId, strDivToExpand)
{
	var objDiv = document.getElementById(strDivId);
	var iWidth = parseInt(objDiv.getAttribute("origWidth"));

	if (objDiv.getAttribute("collapsed") != "true")
	{
		objDiv.setAttribute("collapsed", "true");
		objDiv.setAttribute("expanded", "false");
		
		if (!iWidth)
		{
			objDiv.setAttribute("origWidth", GetObjWidth(objDiv));
			iWidth = parseInt(objDiv.getAttribute("origWidth"));
		}
		
		objDiv.style.overflow = "scroll";
		objDiv.style.whiteSpace = "nowrap";
		
		setTimeout("_HCollapseDiv('" + strDivId + "', " + iWidth + ", '" + strDivToExpand + "')", 20);
	}
}

function _HCollapseDiv(strDivId, iWidth, strDivToExpand)
{
	var objDiv = document.getElementById(strDivId);
	
	iWidth -= 5;
		
	if (iWidth > 0)
	{
		objDiv.style.width = iWidth;
		setTimeout("_HCollapseDiv('" + strDivId + "', " + iWidth + ", '" + strDivToExpand + "')", 10);
	}
	else
	{
		objDiv.style.display = "none";

		if (strDivToExpand != undefined)
		{
			HExpandDiv(strDivToExpand);
		}
	}
}

function CollapseDiv(strDivId, strDivToExpand)
{
	var objDiv = document.getElementById(strDivId);
	var iHeight = parseInt(objDiv.getAttribute("origHeight"));

	if (objDiv.getAttribute("collapsed") != "true")
	{
		objDiv.setAttribute("collapsed", "true");
		objDiv.setAttribute("expanded", "false");
		
		if (!iHeight)
		{
			objDiv.setAttribute("origHeight", GetObjHeight(objDiv));
			iHeight = parseInt(objDiv.getAttribute("origHeight"));
		}
		
		objDiv.style.overflow = "hidden";

		setTimeout("_CollapseDiv('" + strDivId + "', " + iHeight + ", '" + strDivToExpand + "')", 20);
	}
}

function _CollapseDiv(strDivId, iHeight, strDivToExpand)
{
	var objDiv = document.getElementById(strDivId);
	
	iHeight -= 5;
		
	if (iHeight > 0)
	{
		objDiv.style.height = iHeight;
		setTimeout("_CollapseDiv('" + strDivId + "', " + iHeight + ", '" + strDivToExpand + "')", 10);
	}
	else
	{
		objDiv.style.display = "none";

		if (strDivToExpand != "undefined")
		{
			ExpandDiv(strDivToExpand);
		}
	}
}

function GetObjHeight(objItem)
{
	return findBottom(objItem) - findTop(objItem);
}

function GetObjWidth(objItem)
{
	return findRight(objItem) - findLeft(objItem);
}

function filterProductResults()
{
	var objLoading = document.getElementById("resultsLoading");
	var objResults = document.getElementById("results");
	var objNoResults = document.getElementById("noResults");
	
	objLoading.style.display = "block";
	objResults.style.display = "none";
	objNoResults.style.display = "none";
	
	setTimeout("_filterProductResults()", 1000);
}

function sendNewPageOrder(arrPages)
{
	var objPagesNode, objAjax;
	var objPagesXml = xml_createXmlDom();

	var objFilterNode = document.getElementById("filtering");
	var strCacheName = objFilterNode.getAttribute("cachename");
	
	objPagesXml.loadXML("<pages/>");
	objPagesNode = objPagesXml.selectSingleNode("/pages");
	
	objPagesNode.setAttribute("cacheName", strCacheName);
	
	for (var i = 0; i < arrPages.length; i++)
	{
		xml_createNode(objPagesNode, "page", arrPages[i]);
	}
	
	objAjax = new CAjax();
	
	if (objAjax.open("/dynamic/updatePages.php", false))
	{
		objAjax.send(objPagesNode.xml);
	}

}

function showAllProductResults()
{
	var objModels = document.getElementById("models");
	var objBodyTypes = document.getElementById("bodyTypes");
	var objBrands = document.getElementById("brands");
	var objFuelTypes = document.getElementById("fuelTypes");
	var objPositions = document.getElementById("positions");
	
	objModels[0].selected = true;
	objBodyTypes[0].selected = true;
	objBrands[0].selected = true;
	objFuelTypes[0].selected = true;
	objPositions[0].selected = true;
	
	filterProductResults();
}

function _filterProductResults()
{
	var objDiv, strType, strId, objNoResults, objLoading, objResults, objFilteredNumber, iResults;
	var objDivs;
	var strModel, strBodyType, strYear, strBrand, strFuelType, strSelectedModel, strSelectedBodyType, strSelectedBrand, strSelectedFuelType, strSelectedPosition, strPosition;
	var bResults = false;
	var arrPages = new Array();
	var objSortBy = document.getElementById("sortBy");
	var objInStock = document.getElementById("inStockCheck");
	
	iResults = 0;
	objDivs = document.getElementsByTagName("div");
	objLoading = document.getElementById("resultsLoading");
	objResults = document.getElementById("results");
	objNoResults = document.getElementById("noResults");
	objFilteredNumber = document.getElementById("filteredNumber");
	
	strSelectedModel = getFormValue("models");
	strSelectedBodyType = getFormValue("bodyTypes");
	strSelectedBrand = getFormValue("brands");
	strSelectedFuelType = getFormValue("fuelTypes");
	strSelectedPosition = getFormValue("positions");
	
	for (var i = 0; i < objDivs.length; i++)
	{
		objDiv = objDivs[i];
		
		strType = objDiv.getAttribute("type");
	
		if (strType == "productResult")
		{
			strModel = objDiv.getAttribute("lModel");
			strBodyType = objDiv.getAttribute("lBodyType");
			strBrand = objDiv.getAttribute("lBrand");
			strFuelType = objDiv.getAttribute("lFuelType");
			strPosition = objDiv.getAttribute("lPosition");
			strId = objDiv.getAttribute("id");
			
			if ((strModel == strSelectedModel || strSelectedModel == "") &&
					(strBodyType == strSelectedBodyType || strSelectedBodyType == "") &&
					(strBrand == strSelectedBrand || strSelectedBrand == "") &&
					(strFuelType == strSelectedFuelType || strSelectedFuelType == "") &&
					(strPosition == strSelectedPosition || strSelectedPosition == ""))
			{
				if (objDiv.getAttribute("stockHidden") != "true")
				{
					showDiv(strId);
					bResults = true;
					iResults ++;
					
					arrPages[arrPages.length] = escape(objDiv.getAttribute("productCode")) + "&1&" + objDiv.getAttribute("hash");
				}
				
				objDiv.setAttribute("filterHidden", "false");
			}
			else
			{
				objDiv.setAttribute("filterHidden", "true");
				hideDiv(strId);
			}
		}	
	}
	
	if (!bResults)
	{
		objNoResults.style.display = "block";
		CollapseDiv("filteredNotice");
		objSortBy.disabled = "true";
		objInStock.disabled = "true";
	}
	else
	{
		if (objSortBy.getAttribute("allow") == "true")
		{
			objSortBy.disabled = "";
		}
		
		objInStock.disabled = "";
		
		ExpandDiv("filteredNotice");
	}
	
	objFilteredNumber.innerHTML = iResults;
	
	objLoading.style.display = "none";
	objResults.style.display = "block";
	
	sendNewPageOrder(arrPages);
	
}

function hideDiv(strDivId)
{
	var objDiv = document.getElementById(strDivId);
	
	objDiv.style.display = "none";
}

function showDiv(strDivId)
{
	var objDiv = document.getElementById(strDivId);
	
	objDiv.style.display = "block";
}

function validateForm(objForm, strFormAnchor)
{
	var objElements, bComplete, bEmailOk, objParent, strName;
	
	bComplete = true;
	
	if(document.layers)
	{  
		objElements = objForm.all;
	}
	else if(document.all)
	{
		objElements = objForm.all;
	}
	else
	{
		objElements = objForm.getElementsByTagName("*");
	}

	for (var i=0; i < objElements.length;i++)
	{
		var strType = objElements[i].getAttribute("type");
		
		bEmailOk = true;
		
		if (objElements[i].getAttribute("email") == "true")
		{
			bEmailOk = checkEmail(objElements[i].value);
		}
		
		if (objElements[i].getAttribute("required") == "true")
		{
			if (objElements[i].value.length <= 0 || !bEmailOk)
			{
				strName = objElements[i].getAttribute("holder");
				
				if (strName == null)
				{
					strName = "d_" + objElements[i].id;
				}

				objParent = document.getElementById(strName);
				
				if (objParent)
				{
					objParent.className = "error";
				}
				
				bComplete = false;
			}
			else
			{
			
				objParent = document.getElementById("d_" + objElements[i].id);
				
				if (objParent)
				{
					objParent.className = "field";
				}
			}
		}
	}
	
	if (!bComplete)
	{
		objAnchor = document.getElementById(strFormAnchor);
		
		if (!objAnchor)
		{
			alert("Please complete the required fields");
		}
		else
		{
			smoothScroll(strFormAnchor);
		}
	}
	
	return bComplete;
}

function selectToolTier(objSelect, iId) 
{
    var objDiv = document.getElementById("d_toolTier" + iId);
    var objAjax = new CAjax();

    if (objAjax.open("/dynamic/toolTier.php?level=" + iId + "&catCode=" + getToolCode("toolTier" + (iId - 1)), true)) {
       
        objDiv.innerHTML = objAjax.getResponse();
    }
}

function getFriendlyTool(strId) {

    var strValue = getFormValue(strId);

    var objOption = document.getElementById(strValue);

    return objOption.getAttribute("friendly");
}

function getToolCode(strId) {

    var strValue = getFormValue(strId);
  
    var objOption = document.getElementById(strValue);

    return objOption.getAttribute("catCode");
}

function gotoTools() 
{
  var objForm = document.getElementById("toolForm");
  var strCarLink, strTier2, strTier3, strTier4;

  if (validateForm(objForm)) {
      strCarLink = getFormValue("carLink");
      strTier2 = getFriendlyTool("toolTier2");
      strTier3 = getFriendlyTool("toolTier3");
      strTier4 = getFriendlyTool("toolTier4");

      var strLink = "/ecp/" + strCarLink + "p/Tools/" + strTier2 + "/" + strTier4;

      document.location.href = strLink;
  }
}

function swapRows(objA, objB)
{
	var objBParent = objB.parentNode;
	var objBSibling = objB.nextSibling;
	objA.parentNode.insertBefore(objB, objA.nextSibling);
	objBParent.insertBefore(objA, objBSibling);
}

function sortNonCarParts(objSelect)
{
	var objLoading = document.getElementById("resultsLoading");
	var objResults = document.getElementById("results");
	var objNoResults = document.getElementById("noResults");
	
	objLoading.style.display = "block";
	objResults.style.display = "none";
	objNoResults.style.display = "none";
	
	setTimeout("_sortNonCarParts('" + objSelect.id + "')", 200);
}

function _sortNonCarParts(strId)
{
	var objLoading = document.getElementById("resultsLoading");
	var objResults = document.getElementById("results");
	var objSelect = document.getElementById(strId);
	var objResults = document.getElementById("results");
	var objHolders = objResults.getElementsByTagName("div");
	var objOption = document.getElementById(objSelect.value);
	var strSort = objOption.getAttribute("sort");
	var strAsc = objOption.getAttribute("asc");
	var strNumeric = objOption.getAttribute("numeric");
	var arrPages = new Array();
	
	for (var i = 0; i < objHolders.length; i++)
	{
		if (objHolders[i].getAttribute("type") == "productResult")
		{
			for (var j = 0; j < objHolders.length; j++)
			{
				if (objHolders[j].getAttribute("type") == "productResult")
				{
					if (j != i)
					{
						var strJ = objHolders[j].getAttribute(strSort);
						var strI = objHolders[i].getAttribute(strSort);
						
						if (strNumeric == "true")
						{
							strJ = parseFloat(strJ);
							strI = parseFloat(strI);
						}
						
						if (strAsc == "true")
						{
							if (strJ > strI)
							{
								swapRows(objHolders[j], objHolders[i]);
							}
						}
						else
						{
							if (strJ < strI)
							{
								swapRows(objHolders[j], objHolders[i]);
							}
						}
					}
					
				}
			}
		}
		
	}
	
	for (i = 0; i < objHolders.length; i++)
	{
		if (objHolders[i].getAttribute("filterHidden") != "true" && objHolders[i].getAttribute("stockHidden") != "true" &&
				objHolders[i].getAttribute("type") == "productResult")
		{
			arrPages[arrPages.length] = escape(objHolders[i].getAttribute("productCode")) + "&1&" + objHolders[i].getAttribute("hash");
		}
	}
	
	sendNewPageOrder(arrPages);
	
	objLoading.style.display = "none";
	objResults.style.display = "block";
}

function inStockOnly(objCheck)
{
	var objLoading = document.getElementById("resultsLoading");
	var objResults = document.getElementById("results");
	var objNoResults = document.getElementById("noResults");
	
	objLoading.style.display = "block";
	objResults.style.display = "none";
	objNoResults.style.display = "none";
	
	setTimeout("_inStockOnly(" + objCheck.checked + ")", 200);
}

function _inStockOnly(bChecked)
{
	var objResults = document.getElementById("results");
	var objLoading = document.getElementById("resultsLoading");
	var objHolders = objResults.getElementsByTagName("div");
	var bHide = false;
	var objNoResults = document.getElementById("noResults");
	var bResults = false;
	var objSortBy = document.getElementById("sortBy");
	var objFilteredNumber = document.getElementById("filteredNumber");
	var iResults = 0;
	var arrPages = new Array();
	
	for (var i = 0; i < objHolders.length; i++)
	{
		bHide = false;
		
		if (objHolders[i].getAttribute("type") == "productResult")
		{
				if (bChecked)
				{
					if (parseInt(objHolders[i].getAttribute("stock")) <= 0)
					{
						bHide = true;
					}
				}
		
				if (bHide)
				{
					objHolders[i].style.display = "none";
					objHolders[i].setAttribute("stockHidden", "true");
				}
				else
				{
					if (objHolders[i].getAttribute("filterHidden") != "true")
					{
						bResults = true;
						iResults ++;
						objHolders[i].style.display = "block";
						
						arrPages[arrPages.length] = escape(objHolders[i].getAttribute("productCode")) + "&1&" + objHolders[i].getAttribute("hash");
	
					}
					
					objHolders[i].setAttribute("stockHidden", "false");
				}
		}
	}

	objFilteredNumber.innerHTML = iResults;
	
	if (bResults)
	{
		objNoResults.style.display = "none";
		
		if (objSortBy.getAttribute("allow") == "true")
		{
			objSortBy.disabled = "";
		}
		
		ExpandDiv("filteredNotice");
	}
	else
	{
		objNoResults.style.display = "block";
		objSortBy.disabled = "true";
		CollapseDiv("filteredNotice");
	}
	
	objLoading.style.display = "none";
	objResults.style.display = "block";
	
	sendNewPageOrder(arrPages);
}

function changeCurrentJump(objA, strCatCode)
{
	var objATemp, arrAs, objDiv;
	
	objA.className = "current";
	objDiv = document.getElementById("tier3_" + strCatCode);
	objDiv.style.display = "block";
			
	objDiv = document.getElementById("toggleLevel");
	arrAs = objDiv.getElementsByTagName("a");
	
	for (var i = 0; i < arrAs.length; i++)
	{
		objATemp = arrAs[i];
		
		if (objATemp.id.substr(0,7) == "jumper_")
		{
			strCurrentCatCode = objATemp.getAttribute("catCode");
		
			if (strCurrentCatCode != strCatCode)
			{
				objATemp.className = "";
				
				objDiv = document.getElementById("tier3_" + strCurrentCatCode);
				objDiv.style.display = "none";
			}
		}
	}
}

function toggleJumpMenu()
{
	var objDiv = document.getElementById("catMenu");
	
	if (objDiv.getAttribute("shown") != "true")
	{
		objDiv.style.display = "block";
		objDiv.setAttribute("shown", "true");
	}
	else
	{
		objDiv.style.display = "none";
		objDiv.setAttribute("shown", "false");
	}
}

function searchPartNo()
{
	var objForm = document.getElementById("partSearchForm");

	if (validateForm(objForm))
	{
		document.location.href = "/ecp/n/" + escape(getFormValue("partNoSearch") + "/p/" + getFormValue("friendly1"));
	}
	
	return false;
}

function searchForKeyword()
{
  var objForm = document.getElementById("keywordForm");

	if (validateForm(objForm))
	{
		document.location.href = "/ecp/k/" + escape(getFormValue("keyword") + "/p/" + getFormValue("friendly1"));
	}
	
	return false;
}

function searchForTools()
{
	var objForm = document.getElementById("toolForm");

	if (validateForm(objForm))
	{
		document.location.href = "/ecp/f/" + escape(getFormValue("toolsSearch") + "/p/" + getFormValue("friendly1"));
	}
	
	return false;
}

function postcodeLookup()
{
	var objForm = document.getElementById("postcodeForm");

	if (validateForm(objForm))
	{
	  var strPostCode = getFormValue("postcode");
	  strPostCode = strPostCode.replace(/\s+/g,'');
	  
		document.location.href = "/ecp/store/f/" + encodeURI(strPostCode);
	}
	
	return false;
}

function initializeGMap(iLat, iLong) 
{ 
	if (GBrowserIsCompatible()) 
	{ 
		var map = new GMap2(document.getElementById("map")); 
	
		map.setCenter(new GLatLng(iLat, iLong), 13); 
		map.addOverlay(new GMarker(new GLatLng(iLat, iLong)));
		
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		    
	} 
		
		
} 

function changeImage(objImg)
{
	var strImage = objImg.getAttribute("ref");
	var objMainImage = document.getElementById("mainImage");

	objMainImage.style.backgroundImage = "url(" + strImage + ")";
	
}

function promptForCar()
{
	var objDiv = document.getElementById("promptForCar");
	var objLocator = document.getElementById("carPromptLocator");
	
	if (!objDiv)
	{
		objDiv = document.createElement("div");
		objDiv.id = "promptForCar";
		document.body.appendChild(objDiv);
	}
	
	setOpacity("promptForCar", 100);
	objDiv.style.display = "block";
	
	iDivWidth = findRight(objDiv) - findLeft(objDiv);
	iDivHeight = findBottom(objDiv) - findTop(objDiv);
	
	objDiv.style.top = findTop(objLocator) - iDivHeight/2;
	objDiv.style.left = findRight(objLocator);
	
	objDiv.setAttribute("opacity", 300);
	setTimeout("fadeFrom('promptForCar')", 4000);
	
	changeVehicle();
	smoothScroll();
}

function smoothScroll(strId)
{
	var iScroll = 0, iOffsetScroll = 0;
	iScroll = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
	
	if (strId != "undefined" && strId != undefined)
	{
		var objDiv = document.getElementById(strId);
		iOffsetScroll = findTop(objDiv);
	}

	if (iScroll >= 0)
	{
		setTimeout("_smoothScroll(" + iScroll + ", " + iOffsetScroll + ")", 10);
	}
}

function _smoothScroll(iScrollLeft, iOffsetScroll)
{
	iScrollLeft -= 30;
	
	if (iScrollLeft < 0)
	{
		iScrollLeft = 0;
	}
	
	scrollTo(0, iScrollLeft);
	
	if (iScrollLeft != 0 && iScrollLeft >= iOffsetScroll && iScrollLeft - iOffsetScroll != 0)
	{
		setTimeout("_smoothScroll(" + iScrollLeft + ", " + iOffsetScroll + ")", 10);
	}
	else
	{
		scrollTo(0, iOffsetScroll);
	}
}



function checkEmailAddress(objInput, bIgnoreCurrent)
{
	var strResponse, objDiv, objPs;
	var strEmail = objInput.value;
	var objAjax = new CAjax();
	var strIgnoreCurrent = "false";
	
	if (bIgnoreCurrent)
	{
		strIgnoreCurrent = "true";
	}
	
    if (objAjax.open("/dynamic/checkUserEmail.php?ignoreCurrent=" + strIgnoreCurrent + "&email=" + strEmail, true))
    {
        strResponse = objAjax.getResponse();
        objDiv = objInput.parentNode;
        objPs = objDiv.getElementsByTagName("p");
    		
        if (strResponse.length >1)
        {
			objDiv.className = "error";
			objPs[0].innerHTML = strResponse;
			objInput.setAttribute("valid", "false");
        }
        else
        {
			objDiv.className = "field";
			objPs[0].innerHTML = "";
			objInput.setAttribute("valid", "true");
        }
  }
	
}

function loginCheck(objEvent) 
{ 
  var objEvent = (objEvent) ? objEvent : event;
  
  var iCharCode = (objEvent.which) ? objEvent.which : objEvent.keyCode;
  
  if (iCharCode == 13) 
  { 
    loginDynamic();
  }

} 

function loginDynamic()
{
	var objButton = document.getElementById("login");
	var objPleaseWait = document.getElementById("pleaseWaitLogin");

	if (objButton)
	{
		objButton.style.display = "none";
  }
  
  if (objPleaseWait)
  {
		objPleaseWait.style.display = "block";	
	}
	
	setTimeout("_loginDynamic()", 100);
}

function _loginDynamic()
{
	var strResponse, objAjax;
	var objForm = document.getElementById("loginForm");
	var objButton = document.getElementById("login");
	var objPleaseWait = document.getElementById("pleaseWaitLogin");
	var bOk = false;
	
	if (validateForm(objForm, "loginPanel"))
	{
		var objAjax = new CAjax();

		if (objAjax.open("/dynamic/login.php?email=" + getFormValue("loginEmail") + "&password=" + getFormValue("loginPassword"), true))
		{
			strResponse = trim(objAjax.getResponse());
			
			objPs = document.getElementById("d_loginEmail").getElementsByTagName("p");
			objPs[0].innerHTML = strResponse;
			
			if (strResponse == "") 
			{	
				bOk = true;
				objForm.submit();
			}
		}
	}
	
	if (!bOk)
	{
		if (objButton)
		{
			objButton.style.display = "block";
		}
	  
		if (objPleaseWait)
		{
			objPleaseWait.style.display = "none";	
		}
	}
	
	return false;
}

function deleteMyBillingAddress(strPrefix, bIncDefault)
{
	var objDiv;
	var iInternalId = getFormValue(strPrefix + "internalId");
	var strIncDefault = "true";
	var objAjax = new CAjax();
	var objButton = document.getElementById("updateButton");
	var objDeleteButton = document.getElementById("deleteButton");
	
	if (!bIncDefault)
	{
		strIncDefault = "false";
	}
	
	if (iInternalId != "0")
	{
		if (objAjax.open("/dynamic/deleteBillingAddress.php?prefix=" + strPrefix + "&incDefault=" + strIncDefault + "&id=" + iInternalId, true)) {
			objDiv = document.getElementById("addressResponse");
			objDiv.innerHTML = "Updated";
	    
			objDiv = document.getElementById("billingSelect");
			objDiv.innerHTML = objAjax.getResponse();
			
			document.getElementById(strPrefix + "address1").value = "";
			document.getElementById(strPrefix + "address2").value = "";
			document.getElementById(strPrefix + "town").value = "";
			document.getElementById(strPrefix + "county").value = "";
			document.getElementById(strPrefix + "postcode").value = "";
			document.getElementById(strPrefix + "contactName").value = "";
			
			document.getElementById(strPrefix + "internalId").value = "0";
		
			objButton.style.display = "none";
			objDeleteButton.style.display = "none";
	
		}
  }
}

function deleteMyDeliveryAddress(strPrefix, bIncDefault)
{
	var objDiv;
	var iInternalId = getFormValue(strPrefix + "internalId");
	var strIncDefault = "true";
	var objAjax = new CAjax();
	var objButton = document.getElementById("updateButton");
	var objDeleteButton = document.getElementById("deleteButton");
	
	if (!bIncDefault)
	{
		strIncDefault = "false";
	}
	
	if (iInternalId != "0")
	{
		if (objAjax.open("/dynamic/deleteDeliveryAddress.php?prefix=" + strPrefix + "&incDefault=" + strIncDefault + "&id=" + iInternalId, true)) {
			objDiv = document.getElementById("addressResponse");
			objDiv.innerHTML = "Updated";
	    
			objDiv = document.getElementById("deliverySelect");
			objDiv.innerHTML = objAjax.getResponse();
			
			document.getElementById(strPrefix + "address1").value = "";
			document.getElementById(strPrefix + "address2").value = "";
			document.getElementById(strPrefix + "town").value = "";
			document.getElementById(strPrefix + "county").value = "";
			document.getElementById(strPrefix + "postcode").value = "";
			document.getElementById(strPrefix + "contactName").value = "";
			
			document.getElementById(strPrefix + "internalId").value = "0";
			
			objButton.style.display = "none";
			objDeleteButton.style.display = "none";
		
		}
  }
}

function updateMyDeliveryAddress(strPrefix, bCreate, bIncDefault) 
{
  var objForm = document.getElementById("deliveryAddress");
	
  var iInternalId = getFormValue(strPrefix + "internalId");
  var strAddress1 = getFormValue(strPrefix + "address1");
  var strAddress2 = getFormValue(strPrefix + "address2");
  var strTown = getFormValue(strPrefix + "town");
  var strCounty = getFormValue(strPrefix + "county");
  var strPostCode = getFormValue(strPrefix + "postcode");
  var strContactName = getFormValue(strPrefix + "contactName");
  var objAjax = new CAjax();
	var strIncDefault = "true";
	var objButton = document.getElementById("updateButton");
	var objDeleteButton = document.getElementById("deleteButton");
	
	if (!bIncDefault)
	{
		strIncDefault = "false";
	}

  if (bCreate) 
  {
     iInternalId = -1;
  }
  
  if (validateForm(objForm)) 
  {
    if (objAjax.open("/dynamic/updateDeliveryAddress.php?prefix=" + strPrefix + "&incDefault=" + strIncDefault + "&id=" + iInternalId + "&address1=" + strAddress1 + "&address2=" + strAddress2 + "&town=" + strTown + "&county=" + strCounty + "&postcode=" + strPostCode + "&contactName=" + strContactName, true)) {
      objDiv = document.getElementById("addressResponse");
      objDiv.innerHTML = "Updated";
      
      objDiv = document.getElementById("deliverySelect");
      objDiv.innerHTML = objAjax.getResponse();
      
       if (objButton)
			{
				objButton.style.display = "block";
				objDeleteButton.style.display = "block";
			}
    }
  }
   
}


function updateMyBillingAddress(strPrefix, bCreate, bIncDefault) 
{	
  var objForm = document.getElementById(strPrefix + "cardDetails");
  var iInternalId = getFormValue(strPrefix + "internalId");
  var strAddress1 = getFormValue(strPrefix + "address1");
  var strAddress2 = getFormValue(strPrefix + "address2");
  var strTown = getFormValue(strPrefix + "town");
  var strCounty = getFormValue(strPrefix + "county");
  var strPostCode = getFormValue(strPrefix + "postcode");
  var strContactName = getFormValue(strPrefix + "contactName");
  var objAjax = new CAjax();
	var strIncDefault = "true";
	var objButton = document.getElementById("updateButton");
	var objDeleteButton = document.getElementById("deleteButton");
	
	if (!bIncDefault)
	{
		strIncDefault = "false";
	}
	
  if (bCreate) 
  {
     iInternalId = -1;
  }
  if (validateForm(objForm)) 
  {
    if (objAjax.open("/dynamic/updateBillingAddress.php?prefix=" + strPrefix + "&incDefault=" + strIncDefault + "&id=" + iInternalId + "&address1=" + strAddress1 + "&address2=" + strAddress2 + "&town=" + strTown + "&county=" + strCounty + "&postcode=" + strPostCode + "&contactName=" + strContactName, true)) {
        objDiv = document.getElementById("addressResponse");
        objDiv.innerHTML = "Updated";

        objDiv = document.getElementById("billingSelect");
        objDiv.innerHTML = objAjax.getResponse();
        
        if (objButton)
        {
					objButton.style.display = "block";
					objDeleteButton.style.display = "block";
				}
    }
  }
}

function retreivePassword()
{
	var objForm = document.getElementById("forgottenForm");
	var strEmail;

	if (validateForm(objForm))
	{
		strEmail = getFormValue("forgottenEmail");
		objForm.submit();
	}
	
	return false;
}

function trim(str, chars)
{
  return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars)
{
  chars = chars || "\\s";
  return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars)
{
  chars = chars || "\\s";
  return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
function changePassword()
{
	var objForm = document.getElementById("changePassword");

	strEmail = getFormValue("email");
	strPassword1 = getFormValue("password1");
	strPassword2 = getFormValue("password2");
	
	objPassword1 = document.getElementById("d_password1");
	objPassword2 = document.getElementById("d_password2");

	objPassword1.className = "field";
	objPassword2.className = "field";
	
	bError = false;
	
	if (strPassword1.length < 8)
	{
		objPassword1.className = "error";
		bError = true;
	}
	
	if(strPassword1 != strPassword2)
	{
		objPassword1.className = "error";
		objPassword2.className = "error";
		bError = true;
	}
	
	if (!bError)
	{
		objForm.submit();
	}
	
}


function QL()
{
// Quick Parts lookup
	var objButton = document.getElementById("check");
	var objPleaseWait = document.getElementById("pleaseWait");

	if (objButton)
	{
		objButton.style.display = "none";
  }
  
  if (objPleaseWait)
  {
		objPleaseWait.style.display = "block";	
	}
	
	setTimeout("_QL()", 100);
	return false;
}

function _QL()
{
	var strResponse, objAjax;
	var objForm = document.getElementById("QLForm");
	var objButton = document.getElementById("check");
	var objPleaseWait = document.getElementById("pleaseWait");
	var bOk = false;
	
	var objAjax = new CAjax();

	if (objAjax.open("ql.php?part=" + getFormValue("partNumber"), true))
	{
		strResponse = objAjax.getResponse();
		
		objPs = document.getElementById("d_part").getElementsByTagName("p");
		objPs[0].innerHTML = strResponse;

		if (strResponse == "") 
		{	
			bOk = true;
			objForm.submit();
		}
	}
	
	if (!bOk)
	{
		if (objButton)
		{
			objButton.style.display = "block";
		}
	  
		if (objPleaseWait)
		{
			objPleaseWait.style.display = "none";	
		}
	}
	
	return false;
}
