//
// Functions for Car Trader
//
// Browser Checks
//initialization, browser, os detection
var d, dom, nu='', brow='', ie, ie4, ie5, ie5x, ie6, ie7;
var ns4, moz, moz_rv_sub, release_date='', moz_brow, moz_brow_nu='', moz_brow_nu_sub='', rv_full=''; 
var mac, win, old, lin, ie5mac, ie5xwin, konq, saf, op, op4, op5, op6, op7;

d=document;
n=navigator;
nav=n.appVersion;
nan=n.appName;
nua=n.userAgent;
old=(nav.substring(0,1)<4);
mac=(nav.indexOf('Mac')!=-1);
win=( ( (nav.indexOf('Win')!=-1) || (nav.indexOf('NT')!=-1) ) && !mac)?true:false;
lin=(nua.indexOf('Linux')!=-1);
// begin primary dom/ns4 test
// this is the most important test on the page
if ( !document.layers )
{
	dom = ( d.getElementById ) ? d.getElementById : false;
}
else { 
	dom = false; 
	ns4 = true;// only netscape 4 supports document layers
}
// end main dom/ns4 test

op=(nua.indexOf('Opera')!=-1);
saf=(nua.indexOf('Safari')!=-1);
konq=(!saf && (nua.indexOf('Konqueror')!=-1) ) ? true : false;
moz=( (!saf && !konq ) && ( nua.indexOf('Gecko')!=-1 ) ) ? true : false;
ie=((nua.indexOf('MSIE')!=-1)&&!op);
if (op)
{
	str_pos=nua.indexOf('Opera');
	nu=nua.substr((str_pos+6),4);
	brow = 'Opera';
}
else if (saf)
{
	str_pos=nua.indexOf('Safari');
	nu=nua.substr((str_pos+7),5);
	brow = 'Safari';
}
else if (konq)
{
	str_pos=nua.indexOf('Konqueror');
	nu=nua.substr((str_pos+10),3);
	brow = 'Konqueror';
}
// this part is complicated a bit, don't mess with it unless you understand regular expressions
// note, for most comparisons that are practical, compare the 3 digit rv nubmer, that is the output
// placed into 'nu'.
else if (moz)
{
	// regular expression pattern that will be used to extract main version/rv numbers
	pattern = /[(); \n]/;
	// moz type array, add to this if you need to
	moz_types = new Array( 'Firebird', 'Phoenix', 'Firefox', 'Galeon', 'K-Meleon', 'Camino', 'Epiphany', 
		'Netscape6', 'Netscape', 'MultiZilla', 'Gecko Debian', 'rv' );
	rv_pos = nua.indexOf( 'rv' );// find 'rv' position in nua string
	rv_full = nua.substr( rv_pos + 3, 6 );// cut out maximum size it can be, eg: 1.8a2, 1.0.0 etc
	// search for occurance of any of characters in pattern, if found get position of that character
	rv_slice = ( rv_full.search( pattern ) != -1 ) ? rv_full.search( pattern ) : '';
	//check to make sure there was a result, if not do  nothing
	// otherwise slice out the part that you want if there is a slice position
	( rv_slice ) ? rv_full = rv_full.substr( 0, rv_slice ) : '';
	// this is the working id number, 3 digits, you'd use this for 
	// number comparison, like if nu >= 1.3 do something
	nu = rv_full.substr( 0, 3 );
	for (i=0; i < moz_types.length; i++)
	{
		if ( nua.indexOf( moz_types[i]) !=-1 )
		{
			moz_brow = moz_types[i];
			break;
		}
	}
	if ( moz_brow )// if it was found in the array
	{
		str_pos=nua.indexOf(moz_brow);// extract string position
		moz_brow_nu = nua.substr( (str_pos + moz_brow.length + 1 ) ,3);// slice out working number, 3 digit
		// if you got it, use it, else use nu
		moz_brow_nu = ( isNaN( moz_brow_nu ) ) ? moz_brow_nu = nu: moz_brow_nu;
		moz_brow_nu_sub = nua.substr( (str_pos + moz_brow.length + 1 ), 8);
		// this makes sure that it's only the id number
		sub_nu_slice = ( moz_brow_nu_sub.search( pattern ) != -1 ) ? moz_brow_nu_sub.search( pattern ) : '';
		//check to make sure there was a result, if not do  nothing
		( sub_nu_slice ) ? moz_brow_nu_sub = moz_brow_nu_sub.substr( 0, sub_nu_slice ) : '';
	}
	if ( moz_brow == 'Netscape6' )
	{
		moz_brow = 'Netscape';
	}
	else if ( moz_brow == 'rv' || moz_brow == '' )// default value if no other gecko name fit
	{
		moz_brow = 'Mozilla';
	} 
	if ( !moz_brow_nu )// use rv number if nothing else is available
	{
		moz_brow_nu = nu;
		moz_brow_nu_sub = nu;
	}
	if (n.productSub)
	{
		release_date = n.productSub;
	}
}
else if (ie)
{
	str_pos=nua.indexOf('MSIE');
	nu=nua.substr((str_pos+5),3);
	brow = 'Microsoft Internet Explorer';
}
// default to navigator app name
else 
{
	brow = nan;
}
op5=(op&&(nu.substring(0,1)==5));
op6=(op&&(nu.substring(0,1)==6));
op7=(op&&(nu.substring(0,1)==7));
op8=(op&&(nu.substring(0,1)==8));
op9=(op&&(nu.substring(0,1)==9));
ie4=(ie&&!dom);
ie5=(ie&&(nu.substring(0,1)==5));
ie6=(ie&&(nu.substring(0,1)==6));
ie7=(ie&&(nu.substring(0,1)==7));
// default to get number from navigator app version.
if(!nu) 
{
	nu = nav.substring(0,1);
}
/*ie5x tests only for functionavlity. dom or ie5x would be default settings. 
Opera will register true in this test if set to identify as IE 5*/
ie5x=(d.all&&dom);
ie5mac=(mac&&ie5);
ie5xwin=(win&&ie5x);

// End of browser checks

  var emailFilter=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/
  var numberFilter=/\D/g


function setpage1(){
        if(ns4){
            //thisbrowser="NN4";
            document.User.display='block';
            document.Car.display='none';
            document.Confirm.display='none';
        }
        else if(ie){
            //thisbrowser="ie"
            document.all.User.style.display='block';
            document.all.Car.style.display='none';
            document.all.Confirm.style.display='none';
        }
        else{
            //thisbrowser="NN6";
            document.getElementById("User").style.display='block';
            document.getElementById("Car").style.display='none';
            document.getElementById("Confirm").style.display='none';
        }
}

function changetonewpriv1(){
        if(ns4){
            //thisbrowser="NN4";
            document.User.display='block';
            document.Car.display='none';
            document.Confirm.display='none';
        }
        else if(ie){
            //thisbrowser="ie"
            document.all.User.style.display='block';
            document.all.Car.style.display='none';
            document.all.Confirm.style.display='none';
        }
        else{
            //thisbrowser="NN6";
            document.getElementById("User").style.display='block';
            document.getElementById("Car").style.display='none';
            document.getElementById("Confirm").style.display='none';
        }
}

function changetonewpriv2(){
	if(document.form1.FirstName.value == "" || document.form1.Surname.value == "" || document.form1.Address1.value == "" || document.form1.PostCode.value == "" || document.form1.Telephone.value == "" || document.form1.Email.value == "" || document.form1.Password.value == "" || document.form1.ConfirmPassword.value == "" || document.form1.Password.value != document.form1.ConfirmPassword.value || !emailFilter.test(document.form1.Email.value))
	{
		if(document.form1.FirstName.value == "" || document.form1.Surname.value == "" || document.form1.Address1.value == "" || document.form1.PostCode.value == "" || document.form1.Telephone.value == "" || document.form1.Email.value == "" || document.form1.Password.value == "" || document.form1.ConfirmPassword.value == "")
		{
			// Do nothing more than below.
		}
		else if(!emailFilter.test(document.form1.Email.value))
		{
			alert("Please enter a valid email address")
		}
		else if(document.form1.Password.value != document.form1.ConfirmPassword.value)
		{
			alert("Passwords do not match")
		}
        if(ns4){
            document.Page1NotComplete.display='block';
        }
        else if(ie){
            document.all.Page1NotComplete.style.display='block';
        }
        else{
            document.getElementById("Page1NotComplete").style.display='block';
        }
	}
	else
	{
		if(document.form1.ContactName.value == ""){document.form1.ContactName.value = document.form1.FirstName.value + " " + document.form1.Surname.value}
		if(document.form1.ContactNo.value == ""){document.form1.ContactNo.value = document.form1.Telephone.value}
		if(document.form1.CarPostCode.value == ""){document.form1.CarPostCode.value = document.form1.PostCode.value}
		
        if(ns4){
            //thisbrowser="NN4";
            document.User.display='none';
            document.Car.display='block';
            document.Confirm.display='none';
            document.Page1NotComplete.display='none';
        }
        else if(ie){
            //thisbrowser="ie"
            document.all.User.style.display='none';
            document.all.Car.style.display='block';
            document.all.Confirm.style.display='none';
            document.all.Page1NotComplete.style.display='none';
        }
        else{
            //thisbrowser="NN6";
            document.getElementById("User").style.display='none';
            document.getElementById("Car").style.display='block';
            document.getElementById("Confirm").style.display='none';
            document.getElementById("Page1NotComplete").style.display='none';
        }
		document.form1.ContactName.focus()
	}
}

function changetonewpriv3(){
	var bodySelected = false
	for (i=0;i<document.form1.Body.length;i++)
	{
		if(document.form1.Body[i].checked){bodySelected=true}
	}
	if(document.form1.ContactName.value == "" || document.form1.ContactNo.value == "" || document.form1.Make.value == "SELECT MAKE" || document.form1.Model.value == "SELECT MODEL" || document.form1.ModelDetails.value == "" || document.form1.AskingPrice.value == "" || document.form1.CarPostCode.value == "" || !bodySelected || document.form1.Description.value == "")
	{
        if(ns4){
            document.Page2NotComplete.display='block';
        }
        else if(ie){
            document.all.Page2NotComplete.style.display='block';
        }
        else{
            document.getElementById("Page2NotComplete").style.display='block';
        }
	}
	else if(numberFilter.test(document.form1.AskingPrice.value))
	{
        if(ns4){
            document.PriceNoOnly.display='block';
        }
        else if(ie){
            document.all.PriceNoOnly.style.display='block';
        }
        else{
            document.getElementById("PriceNoOnly").style.display='block';
        }
	}
	else
	{
        if(ns4){
            //thisbrowser="NN4";
            document.User.display='none';
            document.Car.display='none';
            document.Confirm.display='block';
            document.Page2NotComplete.display='none';
            document.PriceNoOnly.display='none';
        }
        else if(ie){
            //thisbrowser="ie"
            document.all.User.style.display='none';
            document.all.Car.style.display='none';
            document.all.Confirm.style.display='block';
            document.all.Page2NotComplete.style.display='none';
            document.all.PriceNoOnly.style.display='none';
        }
        else{
            //thisbrowser="NN6";
            document.getElementById("User").style.display='none';
            document.getElementById("Car").style.display='none';
            document.getElementById("Confirm").style.display='block';
            document.getElementById("Page2NotComplete").style.display='none';
            document.getElementById("PriceNoOnly").style.display='none';
        }
	}
}

function updatePreview()
{
        if(ns4){
            //thisbrowser="NN4";
            document.quicksearch.display='none';
        }
        else if(ie){
            //thisbrowser="ie"
            document.all.PrevTitle.innerHTML="<strong>" + document.form1.CarYear.value + " " + document.form1.Make.value + " " + document.form1.Model.value + " " + document.form1.ModelDetails.value + "</strong>";
            document.all.PrevDesc.innerHTML=document.form1.Description.value;
            document.all.PrevPrice.innerHTML="&pound;" + document.form1.AskingPrice.value;
			var FuelType
			var GearboxType
			for (i=0;i<4;i++)
			{
				if(document.form1.Fuel[i].checked){FuelType = document.form1.Fuel[i].value}
			}
			for (i=0;i<3;i++)
			{
				if(document.form1.Gearbox[i].checked){GearboxType = document.form1.Gearbox[i].value}
			}
			if(FuelType == "Petrol"){document.all.PrevPetrol.style.display='block'}else{document.all.PrevPetrol.style.display='none'}
			if(FuelType == "Diesel"){document.all.PrevDiesel.style.display='block'}else{document.all.PrevDiesel.style.display='none'}
			if(FuelType == "Electric"){document.all.PrevElectric.style.display='block'}else{document.all.PrevElectric.style.display='none'}
			if(FuelType == "LPG"){document.all.PrevLPG.style.display='block'}else{document.all.PrevLPG.style.display='none'}
			if(GearboxType == "Manual"){document.all.PrevManual.style.display='block'}else{document.all.PrevManual.style.display='none'}
			if(GearboxType == "Automatic"){document.all.PrevAuto.style.display='block'}else{document.all.PrevAuto.style.display='none'}
			if(GearboxType == "Semi-Auto"){document.all.PrevSemi.style.display='block'}else{document.all.PrevSemi.style.display='none'}
			var j = 0
			var optionsValue = "<UL>"
			if(document.form1.AC.checked && j < 5){optionsValue = optionsValue + "<LI>Air Conditioning</LI>";j++}
			if(document.form1.Alarm.checked && j < 5){optionsValue = optionsValue + "<LI>Alarm</LI>";j++}
			if(document.form1.Immobiliser.checked && j < 5){optionsValue = optionsValue + "<LI>Immobiliser</LI>";j++}
			if(document.form1.RemoteLocking.checked && j < 5){optionsValue = optionsValue + "<LI>Remote Locking</LI>";j++}
			if(document.form1.CruiseControl.checked && j < 5){optionsValue = optionsValue + "<LI>Cruise Control</LI>";j++}
			if(document.form1.AlloyWheels.checked && j < 5){optionsValue = optionsValue + "<LI>Alloy Wheels</LI>";j++}
			if(document.form1.PowerSteering.checked && j < 5){optionsValue = optionsValue + "<LI>Power Steering</LI>";j++}
			if(document.form1.Leather.checked && j < 5){optionsValue = optionsValue + "<LI>Leather</LI>";j++}
			if(document.form1.Sunroof.checked && j < 5){optionsValue = optionsValue + "<LI>Sunroof</LI>";j++}
			if(document.form1.CDPlayer.checked && j < 5){optionsValue = optionsValue + "<LI>CD Player</LI>";j++}
			optionsValue = optionsValue + "</UL>"
			document.all.PrevOptions.innerHTML = optionsValue
        }
        else{
            //thisbrowser="NN6";
            document.getElementById("quicksearch").style.display='none';
        }
}

function submitForm()
{
	if(document.form1.Confirmation.checked){document.form1.submit()}else{alert("You must agree to the terms and conditions")}
}