var isIE = navigator.userAgent.toLowerCase().indexOf('ie')!=-1 ? true : false;
var isIE6 = navigator.userAgent.toLowerCase().indexOf('msie 6')!=-1 ? true : false;
var isIE8 = navigator.userAgent.toLowerCase().indexOf('msie 8')!=-1 ? true : false;

function SetMenuBackground(tableCell)
{
    tableCell.style.backgroundImage = tableCell.style.backgroundImage.indexOf('http://tyre-quote.com/bg-menu.gif')!=-1 ? tableCell.style.backgroundImage='url(/ImagesPTA/bg-menu-hover.jpg)' : tableCell.style.backgroundImage='url(/ImagesPTA/bg-menu.gif)';
}
function SetRightMenuBackground(tableCell,imageName)
{
    var image = imageName + '.gif';
    var imageHover = imageName + '-hover.gif'; 
    /*tableCell.style.backgroundImage = tableCell.style.backgroundImage.indexOf(image) ==-1 ? tableCell.style.backgroundImage='url(/ImagesPTA/' + imageHover + ')' : tableCell.style.backgroundImage='url(/ImagesPTA/' + image + ')';*/
    tableCell.src = tableCell.src.indexOf(image)!=-1 ? tableCell.src='/ImagesPTA/' + imageHover : tableCell.src='/ImagesPTA/' + image;
    /*alert(tableCell.src); */
}
function $(id){
	return document.getElementById(id);
}

/*function CheckValues()
{
   var retValue = true;
   
   //var vals = new Array("width", "ratio", "rim", "speed");
   
   for (i=0; i < vals.length; i++)
   {
      if (document.getElementById(vals[i]).selectedIndex == 0)
      {
         retValue = false;
         document.getElementById("message").innerHTML = "Please select a " + vals[i] + ".";
         break;
         
      }
   }
   RaiseChange();
   return retValue;
}*/

function CheckCustomerDetails()
{
   var retValue = true;
   var validation = document.getElementById("validation");
   validation.innerHTML = '';
   var controls = new Array("firstName","lastName","contactNumber","emailAddress","confirmEmail");
   
   for (i=0; i < controls.length; i++)
   {
      if (document.getElementById(eval(controls[i])).value == '')
      {
         retValue = false;
         validation.innerHTML = "First Name, Last Name, Contact Number, Email Address and Confirm Email are required fields.";
         break;
      }
   }
   
   if (retValue)
   {
      CheckMail(document.getElementById(confirmEmail));
      CheckMailFormat(document.getElementById(emailAddress));
      if (validation.innerHTML != '')
          retValue = false;
   }
  
   RaiseChange();
   return retValue;
}

function CheckMail(confirmMail)
{
   //confirmMail.value = trim(confirmMail.value);
   
   if (confirmMail.value != '' && confirmMail.value.toLowerCase() != document.getElementById(emailAddress).value.toLowerCase())
   {
       document.getElementById("validation").innerHTML = "The confirmed email is not the same as the original.";
   }
   else
   {
       var validation = document.getElementById("validation");
       if (validation.innerHTML.indexOf("confirmed") != -1)
           validation.innerHTML = "";
   }
}

function CheckMailFormat(eMail)
{
  eMail.value = trim(eMail.value);
   
   if (eMail.value != '')
   {
		var reg = new RegExp(/^\S+@\S+\.\S+$/);
		 
		if (!(eMail.value.match(reg)))
		{
		    document.getElementById("validation").innerHTML = "Not a valid email format.<br>";
		}
		else
		{
			var validation = document.getElementById("validation");
			if (validation.innerHTML.indexOf("valid") != -1)
				validation.innerHTML = "";
		}
   }
}

function trim(inputStringTrim)
{
	fixedTrim = "";
	lastCh = " ";
	for (x=0; x < inputStringTrim.length; x++) {
	ch = inputStringTrim.charAt(x);
	if ((ch != " ") || (lastCh != " ")) { fixedTrim += ch; }
	lastCh = ch;
	}
	if (fixedTrim.charAt(fixedTrim.length - 1) == " ") 
	{fixedTrim = fixedTrim.substring(0, fixedTrim.length - 1); }
	return fixedTrim
}

function CheckSelection()
{
   RaiseChange();
   var selectionMade = false;
   var sels = document.getElementsByTagName("Select");
   var selected = "";
   
   
   for(i=0; i < sels.length; i++)
   {
      if (sels[i].options[0].text == "Select" && sels[i].selectedIndex != 0)
      {
         selectionMade = true;
         //get the selected quantity and associated stockcodeid from the previous hidden input
         //there's a text node in between for some reason so it's 2 siblings back
         var stockCode = sels[i].previousSibling.previousSibling.value;
         var currentTable = sels[i].parentNode.parentNode.parentNode;
         selected = selected + stockCode + "^" + sels[i].options[sels[i].selectedIndex].text;
         selected = selected + "^" + currentTable.rows[6].cells[1].innerHTML + "^" + currentTable.rows[2].cells[1].innerHTML + ",";
      }
   } 
   
   if (selected != '')
   {
       document.getElementById(selectedTyres).value = selected.substr(0, selected.length -1);
   }
   
   if (!selectionMade)
       alert("No quantities selected.");
       
   return selectionMade;
}

function showIntro()
{

	document.getElementById(introContent).style.display='block';
	document.getElementById(displayContent).style.display='none';
}

function showIntro2()
{
	document.getElementById(introContent).style.display='block';
	 document.getElementById(depot).style.display='none';
}

function showDisplay()
{
	document.getElementById(displayContent).style.display='block';
	document.getElementById(depot).style.display='none';
}

function showCustomerDetails()
{
   document.getElementById(displayCustomerDetails).style.display='block';
}

function showDepotDetails()
{
    document.getElementById(depot).style.display='block';
    document.getElementById(displayCustomerDetails).style.display='none';
}

function CheckDepot()
{
   var retVal = true;
  
   if (document.getElementById(depotList).selectedIndex == 0)
   {
       alert("No depot selected.");
       retVal = false;
   }
  
   RaiseChange();
   return retVal;
}

function closeContainer()
{
    document.getElementById('imageContainer').style.display='none';
}

function showFullImage(currentEl)
{
   var currentImage = null;
   if(currentEl.tagName.toLowerCase()=='img') // image click itself
        currentImage = currentEl;
   else  // click on div below image so traverse the hierachy up to the tbody element to get the current image
        currentImage = currentEl.parentNode.parentNode.parentNode.getElementsByTagName('img')[0];
        
   position = getElementPosition(currentImage);
   var left = 0;
   var top = 0; 
  
   left = position.x + document.body.scrollLeft;
   top = position.y + document.body.scrollTop;
       
   var container = document.getElementById('imageContainer');
   container.style.display='block';
   container.style.position = 'absolute';
   container.style.left = left + 'px';
   container.style.top = top + 'px'; 
   document.getElementById('imageDisplay').src = currentImage.src;
}

function message(e)
{  
   // this is a function called by window form unload event  
   if(document.getElementById('changeFlag').value != 'change')
      return "The current page data will be lost if you do.";
}

function PrintDocument()
{
	$("changeFlag").value = "change";
	window.print();
}

function selectDepot(depot, depotId)
{
   //document.getElementById('selDepot').innerHTML = depot; 
   document.getElementById(depotSelected).value = depot + "^" + depotId;
   var sel = document.getElementById(depotList);
   for(i=0;i<sel.options.length;i++)
   {
	  if(sel.options[i].value == depotId)
	  {
		 sel.options[i].selected = true;
		 break;
	  }	
   }
}

function RadioOptionSelected()
{
	var result = false;
	var radioList = $(selectService);
	var elements = GetFilteredElements(radioList,'input','radio')
	
	for(var i=0,element;element=elements[i];i++)
	{
		if(element.checked)
		{
			result = true;
			break;
		}
	}
	if(!result)
		alert("Please select a service option.");
		
	return result;
}

// adjust the prices using the original prices in the prices Array
// and the list box id property which persists the increase amount for the given list item 
function AdjustPrices()
{	
    var priceListTable = $('priceTable');
	var engineSizeList = $(engineSize);
	var increase = parseFloat(engineSizeList.options[engineSizeList.selectedIndex].value.split('_')[1]);
	
	for(var i=1; i < priceListTable.rows.length; i++)
	{
	   var amount = priceListTable.rows[i].cells[0].innerHTML; 
	   priceListTable.rows[i].cells[0].innerHTML = amount.charAt(0) + (prices[i] + increase);
	}	
}

var prices = null;
// persist the original prices in an Array for later use
function PersistOriginalPrices()
{
    prices = new Array();
	var priceListTable = $('priceTable');
	
	for(i=0; i < priceListTable.rows.length; i++)
	{
	   var amount = priceListTable.rows[i].cells[0].innerHTML;
	   prices.push(parseFloat(amount.substr(1, amount.length - 1)));
	}	
}

function selectDepotFromList(sel)
{
   for(i=0;i<sel.options.length;i++)
   {
      if(sel.options[i].selected == true)
      {
         //document.getElementById('selDepot').innerHTML = sel.options[i].text; 
		 document.getElementById(depotSelected).value = sel.options[i].text + "^" + sel.options[i].value;
		 break;
	  }	
   }
}

function RaiseChange(sel)
{
   document.getElementById('changeFlag').value = 'change';
}

function getElementPosition(element)
  {
    var x=0,y=0;
    if (navigator.userAgent.toLowerCase().indexOf('mac')!=-1)
    {
       while (element!=null)
       {
         try 
         {
            x+=element.offsetLeft;
            y+=element.offsetTop;
            element=element.offsetParent;
         }
         catch(exception)
         {
            return {x:0,y:0};
         }
       }
    }
    else
    {
       while (element!=null)
       {
         try 
         {
            x+=element.offsetLeft-element.scrollLeft;
            y+=element.offsetTop-element.scrollTop;
            element=element.offsetParent;
         }
         catch (exception)
         {
            return {x:0,y:0};
         }
       }
    }
   return {x:x,y:y};
 }
function GetFilteredElements(element,tagName,type){   
        var filteredElements = new Array();
        var elements = element.getElementsByTagName(tagName);
        for(i=0;i<elements.length;i++){
            if(elements[i].type==type) filteredElements.push(elements[i]);
        }
        return filteredElements;
}

function EventSubscribe(eventName, element, functionCall, capturePhase)
{
    if(isIE){ 
        if(!capturePhase) element.attachEvent('on' + eventName, functionCall);
    }
    else element.addEventListener(eventName, functionCall, capturePhase ? capturePhase : false);
}
function EventUnSubscribe(eventName, element, functionCall, capturePhase)
{
    if(isIE){ 
        if(!capturePhase) element.detachEvent('on' + eventName, functionCall);
    }
    else element.removeEventListener(eventName, functionCall, capturePhase ? capturePhase : false);
}
