// Virtual-Showroom.com stocklist functions. Copyright virtual-showroom.com 2010
// Written by Andy Bryan

// General Functions

function doNothing(){
	//
}

function setCookie(c_name,value,expires)
{
	var today = new Date();
	today.setTime( today.getTime() );
	
	expires = expires * 1000 * 60 * 60 *24;
	var expires_date = new Date( today.getTime() + (expires) );
	
	document.cookie = c_name + "=" + escape(value) +
	((expires_date == null) ? "" : ";expires=" + expires_date.toGMTString() + "; path=/");
}

function deleteCookie(c_name){
	setCookie(c_name, null, -1);
}

function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    {
    c_start=c_start + c_name.length+1;
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    }
  }
return null;
}

function cookieCheck(){
	
	setCookie('test','/',5)
	
	if(getCookie('test')){
		return true;
		deleteCookie('test');
	} else {
		return false;
	}
}

function isEven(value){
	if (value%2 == 0)
		return true;
	else
		return false;
}

function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	pence = num%100;
	num = Math.floor(num/100).toString();
	if(pence<10)
	pence = "0" + pence;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '&#163;' + num);
}

function equalHeight(group) {
	var tallest = 0;
	group.each(function() {
		var thisHeight = $(this).height();
		if(thisHeight > tallest) {
			tallest = thisHeight;
		}
	});
	group.height(tallest);
}

// Stock list listing page functions

function itemLength(x){
	if(x.length < 1){
		return false;
	} else {
		return true;
	}
}

function getUrlVars() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
        vars[key] = value;
    });
    return vars;
}

function checkEmail(x) { // Email format validation
	email = x.value
	AtPos = email.indexOf("@")
	StopPos = email.lastIndexOf(".")
	errorText = ""
	if (email == "") {
		errorText = "email field does not appear to contain a valid email address"
	}
	if (AtPos == -1 || StopPos == -1) {
		errorText = "email field does not appear to contain a valid email address"
	}
	if (StopPos < AtPos) {
		errorText = "email field does not appear to contain a valid email address"
	}
	if (StopPos - AtPos == 1) {
		errorText = "email field does not appear to contain a valid email address"
	}
}

function checkFormItem(x,y){ // Form validation
	if(itemLength(x.value)){
		if(y == "email"){
			checkEmail(x);
			if(errorText.length > 0){
				x.className = "errorHighlight";
				errorTag = true;
			} else {
				x.className = "";
			}
		 } else {
			x.className = "";
		 }
	} else {
		x.className = "errorHighlight";
		errorTag = true;
	}
}

function listPageFormSubmit(x, y){ // Form validation driver function
	errorTag = false;
	errorText = "";
	var targetForm = y + x;
	
	var formName = document[targetForm].name;
	var formEmail = document[targetForm].from_address;
	
	checkFormItem(formName, 'text');
	checkFormItem(formEmail, 'email');
	
	
	if(y.indexOf("tellAFriendForm") != 0){
		var formPhone = document[targetForm].phone;
		checkFormItem(formPhone, 'text');
	} else {
		var toName = document[targetForm].to_name;
		var toEmail = document[targetForm].to_address;
		
		checkFormItem(toName, 'text');
		checkFormItem(toEmail, 'email'); 

	}
	
	if(errorTag){
		alertTxt = "There appears to be missing information from the submission form.\n\nThese fields are marked in red.\n\n";
		if(errorText.length > 0){
			alertTxt = alertTxt + "Also " + errorText;
		}
		alert(alertTxt);
	} else {
		document[targetForm].submit();
	}
}

function toggle(x){
	$("#" + x).slideToggle("fast");
}


function getStyle(oElm, strCssRule){
	var strValue = "";
	if(document.defaultView && document.defaultView.getComputedStyle){
		strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
	}
	else if(oElm.currentStyle){
		strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
			return p1.toUpperCase();
		});
		strValue = oElm.currentStyle[strCssRule];
	}
	return strValue;
}

function stateLoggin(x){
	var target = document.getElementById(x);
	var answer = target.style.display;
	if(answer == 'table' || answer == ""){
		setCookie(x, "is set", 1);
	} else {
		setCookie(x, null, -1);
	}
}

function dupListCheck(x, y){ // Duplicate vehicle / cookie check
	if(y == 'saveList'){
		cName = 'saveList';
	} else {
		cName = 'recentList';
	}
	var dup = false;
	for(i=0; i<=7; i++){
		var tempCookie = getCookie(cName + i);
		if (tempCookie != null){
			var tempArray = tempCookie.split("~");
			if (parseFloat(x) == parseFloat(tempArray[0])){
				dup = true;
			}
		}
	}
	return dup;
}

function hideAdjuster(){
	$('#financeAdjuster').html("<p>There is no finance adjustment available for this vehicle.</p><p>Please contact us for further information.</p>");
}

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_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_findObj(n, d) { //v4.01
  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 && d.getElementById) x=d.getElementById(n); return x;
}

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 liveClock()  {
         var today  = new Date();
         var second = today.getSeconds();
         var minute = today.getMinutes();
         var hour   = today.getHours();
         var hour24 = today.getHours();
         var ampm   = "";
         
         var day    = today.getDay();
         var date   = today.getDate();
         var month  = today.getMonth();
         var year   = today.getFullYear();
         
         var days   = new Array();
          days[0]   = "Sunday";
          days[1]   = "Monday";
          days[2]   = "Tuesday";
          days[3]   = "Wednesday";
          days[4]   = "Thursday";
          days[5]   = "Friday";
          days[6]   = "Saturday";
          
         var mns   = new Array();
          mns[0]   = "January";
          mns[1]   = "February";
          mns[2]   = "March";
          mns[3]   = "April";
          mns[4]   = "May";
          mns[5]   = "June";
          mns[6]   = "July";
          mns[7]   = "August";
          mns[8]   = "September";
          mns[9]   = "October";
          mns[10]  = "November";
          mns[11]  = "December";
           
        if(second<10)
            {
                second = "0"+second;
            }
            
        if(minute<10)
            {
                minute = "0"+minute;
            }
            
        if(hour24<=11)
            {
                ampm = "AM";
            }
            
        else
            {
                ampm = "PM"
            }
            
        if(hour24>=13)
            {
                hour= hour-12;
            }
            
        if(hour24==0)
            {
                hour=12;
            }
        
        document.getElementById('liveClock').innerHTML=(hour+":"+minute+":"+second+" "+ampm+' '+days[day]+', '+date+' '+mns[month]+' '+year);
}

function YY_checkform() { //v4.66
//copyright (c)1998,2002 Yaromat.com
  var args = YY_checkform.arguments; var myDot=true; var myV=''; var myErr='';var addErr=false;var myReq;
  for (var i=1; i<args.length;i=i+4){
    if (args[i+1].charAt(0)=='#'){myReq=true; args[i+1]=args[i+1].substring(1);}else{myReq=false}
    var myObj = MM_findObj(args[i].replace(/\[\d+\]/ig,""));
    myV=myObj.value;
    if (myObj.type=='text'||myObj.type=='password'||myObj.type=='hidden'){
      if (myReq&&myObj.value.length==0){addErr=true}
      if ((myV.length>0)&&(args[i+2]==1)){ //fromto
        var myMa=args[i+1].split('_');if(isNaN(myV)||myV<myMa[0]/1||myV > myMa[1]/1){addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==2)){
          var rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");if(!rx.test(myV))addErr=true;
      } else if ((myV.length>0)&&(args[i+2]==3)){ // date
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);
        if(myAt){
          var myD=(myAt[myMa[1]])?myAt[myMa[1]]:1; var myM=myAt[myMa[2]]-1; var myY=myAt[myMa[3]];
          var myDate=new Date(myY,myM,myD);
          if(myDate.getFullYear()!=myY||myDate.getDate()!=myD||myDate.getMonth()!=myM){addErr=true};
        }else{addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==4)){ // time
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);if(!myAt){addErr=true}
      } else if (myV.length>0&&args[i+2]==5){ // check this 2
            var myObj1 = MM_findObj(args[i+1].replace(/\[\d+\]/ig,""));
            if(myObj1.length)myObj1=myObj1[args[i+1].replace(/(.*\[)|(\].*)/ig,"")];
            if(!myObj1.checked){addErr=true}
      } else if (myV.length>0&&args[i+2]==6){ // the same
            var myObj1 = MM_findObj(args[i+1]);
            if(myV!=myObj1.value){addErr=true}
      }
    } else
    if (!myObj.type&&myObj.length>0&&myObj[0].type=='radio'){
          var myTest = args[i].match(/(.*)\[(\d+)\].*/i);
          var myObj1=(myObj.length>1)?myObj[myTest[2]]:myObj;
      if (args[i+2]==1&&myObj1&&myObj1.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
      if (args[i+2]==2){
        var myDot=false;
        for(var j=0;j<myObj.length;j++){myDot=myDot||myObj[j].checked}
        if(!myDot){myErr+='* ' +args[i+3]+'\n'}
      }
    } else if (myObj.type=='checkbox'){
      if(args[i+2]==1&&myObj.checked==false){addErr=true}
      if(args[i+2]==2&&myObj.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
    } else if (myObj.type=='select-one'||myObj.type=='select-multiple'){
      if(args[i+2]==1&&myObj.selectedIndex/1==0){addErr=true}
    }else if (myObj.type=='textarea'){
      if(myV.length<args[i+1]){addErr=true}
    }
    if (addErr){myErr+='* '+args[i+3]+'\n'; addErr=false}
  }
  if (myErr!=''){alert('The required information is incomplete or contains errors:\t\t\t\t\t\n\n'+myErr)}
  document.MM_returnValue = (myErr=='');
}

function formModels(x, y){
	if (x == "bentley"){
		var selectStr = "\
			<select name=\"Model\" id=\"Model\"> \
                <option selected=\"selected\">Please select</option> \
                <option value=\"Arnage\">Arnage</option> \
                <option value=\"Brooklands\">Brooklands</option> \
                <option value=\"Continental GT\">Continental GT</option> \
                <option value=\"Continental GT Speed\">Continental GT Speed</option> \
                <option value=\"Continental GTC\">Continental GTC</option> \
                <option value=\"Continental GTC Speed\">Continental GTC Speed</option> \
                <option value=\"Continental Flying Spur\">Continental Flying Spur</option> \
                <option value=\"Continental Flying Spur Speed\">Continental Flying Spur Speed</option> \
                <option value=\"Continental Supersport\">Continental Supersport</option> \
                <option value=\"Mulsanne\">Mulsanne</option> \
        	</select>";
	}
	
	if (x == "landRover"){
	var selectStr = "\
		<select name=\"Model\" id=\"Model\"> \
                <option selected=\"selected\">Please select</option> \
                <option value=\"Range Rover\">Range Rover</option> \
                <option value=\"Range Rover Sport\">Range Rover Sport</option> \
				<option value=\"Range Rover Evoque\">Range Rover Evoque</option> \
                <option value=\"Discovery 4\">Discovery 4</option> \
                <option value=\"Freelander 2\">Freelander 2</option> \
                <option value=\"Defender\">Defender</option> \
         </select>";
	}
	
	if (x == "jaguar"){
	var selectStr = "\
		<select name=\"Model\" id=\"Model\"> \
                <option selected=\"selected\">Please select</option> \
                <option value=\"Jaguar XK\">Jaguar XK</option> \
                <option value=\"Jaguar XJ\">Jaguar XJ</option> \
                <option value=\"Jaguar XF\">Jaguar XF</option> \
         </select>";
	}
	
	/*
	if (x == "lotus"){
	var selectStr = "\
		<select name=\"Model\" id=\"Model\"> \
                <option selected=\"selected\">Please select</option> \
                <option value=\"Lotus Elise\">Lotus Elise</option> \
                <option value=\"Lotus Exige\">Lotus Exige</option> \
                <option value=\"Lotus Evora\">Lotus Evora</option> \
                <option value=\"Lotus Europa\">Lotus Europa</option> \
                <option value=\"Lotus 2 Eleven\">Lotus 2 Eleven</option> \
         </select>";
	}
	*/
	
	if (y == "testDrive"){
		document.getElementById('testDriveVehicle').innerHTML=selectStr;
	} else if (y == "special"){
		selectStr = selectStr + "\
		 	<br  /> \
			If this is the incorrect make<br /> \
			<a href=\"javascript:modelReset();\">Please click here</a></div>";
			document.getElementById('testDriveVehicle').innerHTML=selectStr;
	} else {
		document.getElementById('brochureVehicle').innerHTML=selectStr;
	}

}

function modelReset(){
	var selectStr = "\
		<strong>Please select the make you require</strong><br /> \
			<a href=\"javascript:formModels(\'bentley\', \'special\');\">Bentley</a><br /> \
			<a href=\"javascript:formModels(\'landRover\', \'special\');\">Land Rover</a><br /> \
			<a href=\"javascript:formModels(\'jaguar\', \'special\');\">Jaguar</a>";
			// <a href=\"javascript:formModels(\'lotus\', \'special\');\">Lotus</a>";
	document.getElementById('testDriveVehicle').innerHTML=selectStr;
}

function addElement(parentId, elementTag, elementId, html) {
	// Adds an element to the document
	var p = document.getElementById(parentId);
	var newElement = document.createElement(elementTag);
	newElement.setAttribute('id', elementId);
	newElement.innerHTML = html;
	p.appendChild(newElement);
}

function removeElement(elementId) {
	// Removes an element from the document
	count--;
	var element = document.getElementById(elementId);
	element.parentNode.removeChild(element);
	if (count == 0){
		//document.stage4["Vehicle condition"].checked = true;
	}
}

function addDamage(damageTxt) {
	//
	// Example function showing how to add a file input box to an existing form
	//
	fileId++; // increment fileId to get a unique ID for the new element
	count++;
	var html = '<a href="" onclick="javascript:removeElement(\'file-' + fileId + '\'); return false;"><img src="images/remove-button.jpg" alt="Remove this item" title="Remove this item" width="12" height="10" border="0" /></a>' +
			   '<input type="text" name="Vehicle Damage" size="' + damageTxt.length + '" value="' + damageTxt + '" readonly=\"readonly\" /><br />';
	addElement('damageDiv', 'span', 'file-' + fileId, html);
	//document.stage4["Vehicle condition"].checked = false;
}

var fileId = 0; // used by the addFile() function to keep track of IDs
var count = 0;


$(document).ready(function(){
	setInterval('liveClock()', 1000);
});
