// javascript functions





/*********** COOKIE STRUCTURE ***************

   Cookie Name is "cookieRFC".



   PAGE1~PAGE2~PAGE3~PAGE4~PAGE5~PAGE6~PAGE7~PAGE8~PAGE9~PAGE10~MODELYEAR~OWNLEASE~RENTED~VEHICLETYPE~REDUCTION~PAAD~HANDICAP_AGE

   

   The values for the tokens in the above structure are as follows(without quotes). The defualt value for unprocessed field is 

   single space.

   Delimitter is "~". but can be changed to any special character other than (; / \ = , ).

   PAGE1 TO PAGE10 : for Page1 "P1", for Page2 "P2" ..........

   		All the tokens meant for Page numbers are not used, some tokens are provided for future use.

   MODELYEAR:   "THIS", "LAST", "TWO"

   OWNLEASE:    "OWN" ,  "12"  "24" , "36" , "48"

   RENTED:      "YES" , "NO"

   VEHICLETYPE  "CODE7" "CODE8"  "CODE15"

   REDUCTION:   "YES"  "NO"

   PAAD:        "YES"  "NO"

   HANDICAP_AGE "YES" "61" "62" "63" "64" "65"

*************************************************/

/*

    This funtion returns true if the browser is set to accept cookies otherwise it returns false.

    The Document object need to be passed to this function.

*/



function isCookiesEnabled(docu){

	var currentTime = new Date();

	currentTime.setTime(currentTime.getTime() + (1700));

	docu.cookie = "newCookieName=1234;expires=" + currentTime.toGMTString()+";path=/";

	var cookiesEnabled = false;

	var cookiesArray = docu.cookie.split("; ");

	if(cookiesArray != null){

		for(var i = 0 ; i < cookiesArray.length ; i++){

			//alert("cookiename!"+cookiesArray[i].split("=")[0]); //// to remove this

			if(cookiesArray[i].split("=")[0] == "newCookieName" ) {

				cookiesEnabled = true;

				break;

			}

		}

	}

	return cookiesEnabled;

}











/*

   This function  replaces the passed string at passed index within the passed cookieString

   and returns the modified cookieString. For example if the passed cookieString is

   "1234~ABCD~XYZ~456~EEEEEE~DDDDDDD" and delimitter is "~", toBeReplaced is "REPLACEME"

   and indexNumber is 3, then it will return "1234~ABCD~XYZ~REPLACEME~EEEEEE~DDDDDDD".

   IndexNumber starts from zero. If there is any problem then it returns same passed string unmodified.

*/

function replaceIntoCookieString(cookieString, delimitter, toBeReplaced, indexNumber){

	var localCookieString = cookieString;

	if( (localCookieString != null) && (localCookieString != "") ){

		var localCookieStringArray = localCookieString.split(delimitter);

		if(localCookieStringArray != null){

			var arrayLength = localCookieStringArray.length;

			localCookieString = "";

			for(var i = 0; i < arrayLength; i++){

				if(indexNumber == i){

					if( i == (arrayLength - 1) ){ // if this is last element dont append delimitter

						localCookieString = localCookieString + toBeReplaced;

					} else {

						localCookieString = localCookieString + toBeReplaced + delimitter;

					}

				} else {

					if( i == (arrayLength - 1) ){ // if this is last element dont append delimitter

						localCookieString = localCookieString + localCookieStringArray[i];

					}else{

						localCookieString = localCookieString + localCookieStringArray[i] + delimitter;

					}

				}

			}

		}

	}

	return localCookieString;

}





// This function returns the value which is at passed index from the passed cookieString

// using the passed delimitter. This function returns "PROBLEM" if there is a problem.

function getTokenAt(cookieString, indexNumber, delimitter){

	var localCookieString = cookieString;

	if((localCookieString != null) && (localCookieString != "") ){

		var cookieStringArray = localCookieString.split(delimitter);

		if(cookieStringArray != null){

			if(indexNumber < cookieStringArray.length){

				return cookieStringArray[indexNumber];

			}

		}

	}

	return "PROBLEM";

}





//This function tests whether a token is a default value, within the passedString, using the passed delimitter , 

//which is at passed indexNumber. For Example in the String "1234~3456~ ~ABCD~2345", if a single space is the

// default value then if the passed indexNumber is 2, passed delimitter is "~" , passed defult is " " , it 

// returns true.



function isValueADefault(cookieString, indexNumber, delimitter, defaultString){

	if((cookieString != null) && (cookieString != "" )  ){

		var cookieStringArray = cookieString.split(delimitter);

		if((cookieStringArray != null) && (indexNumber < cookieStringArray.length )){

			if(cookieStringArray[indexNumber] == defaultString) return true;

		}

	}

	return false;

}



//This function builds a string with default feild values using the passed delimitter

function buildDefaultCookieString(fieldsCount, defaultToken, delimitter){

	var returnString = "";

	for(var i = 0; i < fieldsCount ; i++){

		if( i == (fieldsCount - 1)){

			returnString = returnString + defaultToken ;

		}else{

			returnString = returnString + defaultToken + delimitter;

		}

	

	}

	return returnString;

}





function storeCookie(docu , cookieString, cookieName){

	var currentTime = new Date();

	currentTime.setTime(currentTime.getTime() + (3 * 60 * 60 * 1000)); //3 hours

	docu.cookie = cookieName + "=" + cookieString + ";expires=" + currentTime.toGMTString()+";path=/";

}



function retreiveCookie(cookieName, docu){

	var cookieArray = docu.cookie.split("; ");

	if(cookieArray != null){

		for(var i = 0 ; i < cookieArray.length ; i++){

			if( (cookieArray[i].split("=")[0]) == cookieName){

				return cookieArray[i].split("=")[1];

			}

		}

	}else {

		return "";

	}

	return "";

}









/////// TONY'S CODE STARTS



<!--



function doCalculationNotTruck(cv)



{



//Calculate the basic fee based on cookie variables :

//			cv[0] = modelyear;

//			cv[1] = ownlease;

//			cv[2] = rent;

//			cv[3] = type;

//			cv[4] = paad;

//			cv[5] = handicap;

//			cv[6] = senior;

//



	var ttf1=7.50;

	var ttf2=12.50;

	var	csf=7.00;

	var basicRate = 0;

	var initialRate = 0;

	var numberMonths = 0;

	var regTerm      = 0;

	var totalAmt	= 0;

	// initial rate based on vehicle type.

	switch(cv[3])

	{

		case "type7":

		initialRate = 32.00;

		break;

		case "type8":

		initialRate = 57.00;

		break;

		case "type15":

		initialRate = 60.50;

		break;

	}

	// reg term based on own/lease/rent data.

	switch(cv[1])

		{

			case "own":

			regTerm = 48;

			break;

			case "lease1":

			regTerm = 12;

			break;

			case "lease2":

			regTerm = 24;

			break;

			case "lease3":

			regTerm = 36;

			break;

			case "lease4":

			regTerm = 48;



			break;



		}

		if(cv[2] == 'rent')

		{regTerm = 12;}

		//determine basic rate.

		basicRate = ((initialRate/12)*(regTerm));

		//determine ttf1

		ttf1=((ttf1/12)*(regTerm));

		//determine ttf2 addon for newer vehicles.

		if(regTerm==12) wrkDiff=1;

		else wrkDiff=2;

		if(cv[0]=="lastyear") wrkDiff=1;

		var monthDiff=(wrkDiff*12);

		ttf2=((ttf2/12)*monthDiff);

		if(cv[0]=="twoyear") ttf2=0;

		//determine csf for no age deduction.  (so csf value won't be changed unnecessarily)

		//if(cv[6]=="novalue") csf=((csf/12)*regTerm);

	//--------------DEDUCTIONS  (and csf value) ----------------------------------------------------------

		//paad deduction.

		if(cv[4]=="paad"){

		ttf1=0;ttf2=0;}

		//age deduction.

		var md=0;

		switch(cv[6])

				{



					case  "61":



					md=regTerm;



					break;







					case  "62":



					md = 36;



					break;







					case  "63":



					md = 24;



					break;







					case  "64":



					md = 12;



					break;







					case  "65":



					md = 0;



					break;







					case "novalue":



					md = regTerm;



					break;



				}







				if (md>regTerm) md=regTerm;







				csf=((csf/12)*md);







			//handicapped deduction.







				if(cv[5]=="handicap") csf=0;







			//---TOTAL---



				totalAmt = basicRate+ttf1+ttf2+csf;



				return totalAmt;



}



function doCalculationTruck(weight,cv)



{







	var cve=1.80;



	var cvef=1.20;



	var com1=8.50;



	var com2=10.50;



	var com3=11.50;



	var com4=12.50;



	var totalFee=0;







	switch(cv[1])



	{



	case "own":



	regTerm = 48;



	break;







	case "lease1":



	regTerm = 12;



	break;







	case "lease2":



	regTerm = 24;



	break;







	case "lease3":



	regTerm = 36;



	break;







	case "lease4":



	regTerm = 48;



	break;



	}



	



	if(cv[2] == 'rent')



	{regTerm = 12;}







	cve=((cve/12)*regTerm)



	cve=(((weight-5000)/1000)*cve);







	cvef=((cvef/12)*regTerm)



	cvef=(((weight-5000)/1000)*cvef);







	if(weight > 50000)



	var holdCom=((com4/12)*regTerm);



	if(weight < 50001)



	var holdCom=((com3/12)*regTerm);



	if(weight < 18001)



	var holdCom=((com2/12)*regTerm);



	if(weight < 10001)



	var holdCom=((com1/12)*regTerm);







	var weightFee=(((weight - 5000)/1000)*holdCom);



	totalFee=weightFee + cve + cvef;







	return totalFee;







}







function getCookie(ckieString)



{



//  get the cookie:  read the cookie and set up program variables. (cookie variables)

//for modelyaer: THIS = thisyear ; LAST = lastyear ; TWO = twoyear ; 

//for ownlease: OWN = own ; 12 = lease1 ; 24 = lease2 ; 36 = lease3 ; 48 = lease4

//for rent: YES = rent ; NO = norent ; 

//for type: CODE7 = type7 ; CODE8 = type8 ; CODE15 = type15

//for paad: YES = paad ; NO = novalue 

//for handicap: YES = handicap ; 61 to 65 = novalue

//for senior: 61 to 65 = same as number ; if handicap is YES then novalue

			var cookieVariables = new Array(7);

			var mYear = getTokenAt(ckieString, 10, "~");

			if(mYear == "THIS") {

				cookieVariables[0] = "thisyear";

			} else if(mYear == "LAST"){

				cookieVariables[0] = "lastyear";

			} else {

				cookieVariables[0] = "twoyear";

			}

			

			var ownlease = getTokenAt(ckieString, 11, "~");

			if(ownlease == "OWN") {

				cookieVariables[1] = "own";

			} else if(ownlease == "12"){

				cookieVariables[1] = "lease1";

			} else if(ownlease == "24") {

				cookieVariables[1] = "lease2";

			} else if(ownlease == "36") {

				cookieVariables[1] = "lease3";

			} else {

				cookieVariables[1] = "lease4";

			}

			

			var rent = getTokenAt(ckieString, 12, "~");

			if(rent == "YES") {

				cookieVariables[2] = "rent";

			} else {

				cookieVariables[2] = "norent";

			}



			var type = getTokenAt(ckieString, 13, "~");

			if(type == "CODE7") {

				cookieVariables[3] = "type7";

			} else if(type == "CODE8"){

				cookieVariables[3] = "type8";

			} else {

				cookieVariables[3] = "type15";

			}



			var paad = getTokenAt(ckieString, 15, "~");

			if(paad == "YES") {

				cookieVariables[4] = "paad";

			} else {

				cookieVariables[4] = "novalue";

			}



			var handicap = getTokenAt(ckieString, 16, "~");

			if(handicap == "YES") {

				cookieVariables[5] = "handicap";

				cookieVariables[6] = "novalue";

			} else if((handicap == "61") || (handicap == "62") || (handicap == "63") || (handicap == "64") || (handicap == "65")){

				cookieVariables[5] = "novalue";

				cookieVariables[6] = handicap;	

			} else {

				cookieVariables[5] = "novalue";

				cookieVariables[6] = "novalue";

			}



			return cookieVariables;



}







function getDescriptions(cv) // cv is array of cookie values



{



		//assign more descriptive text to variables coresponding to the cookie variables.







		switch(cv[0])



					{



					case "thisyear":



					var modelyearOut = "This year or next year's model.";



					break;







					case "lastyear":



					var modelyearOut = "Last year's model.";



					break;







					case "twoyear":



					var modelyearOut = "Two year old model."



					break;



					}







		switch(cv[1])



					{



					case "lease1":



					var ownleaseOut = "1 - 12 Month Lease.";



					break;







					case "lease2":



					var ownleaseOut = "13 - 24 Month Lease.";



					break;







					case "lease3":



					var ownleaseOut = "25 - 36 Month Lease.";



					break;







					case "lease4":



					var ownleaseOut = "37 - 48 Month Lease.";



					break;







					case "own":



					var ownleaseOut = "Own";



					break;



					}







			switch(cv[2])



					{



					case "rent":



					var rentOut = "Yes";



					break;







					case "norent":



					var rentOut = "No";



					break;



					}







			switch(cv[3])







					{



					case "type7":



					var typeOut = "Car/Van/SUV Under 3500 lbs, Code 7.";



					break;







					case "type8":



					var typeOut = "Car/Van/SUV Over 3500 lbs, Code 8.";



					break;







					case "type15":



					var typeOut = "Non-Commercial Truck, Code 15.";



					break;











					}







		switch(cv[4])



					{



					case "novalue":



					var paadOut = "novalue";



					break;







					case "paad":



					var paadOut = "PAAD/SSI/Lifeline.  ";



					break;







					}







		switch(cv[5])



					{



					case "novalue":



					var handicapOut = "novalue";



					break;







					case "handicap":



					var handicapOut = "Handicapped.  ";



					break;







					}



		switch(cv[6])



					{



					case "novalue":



					var seniorOut = "novalue";



					break;







					case "65":



					var seniorOut = "65 or older.  ";



					break;







					case "64":



					var seniorOut = "64 years old.  ";



					break;







					case "63":



					var seniorOut = "63 years old.  ";



					break;







					case "62":



					var seniorOut = "62 years old.  ";



					break;







					case "61":



					var seniorOut = "61 or younger.  ";



					break;



					}







		cookieDescriptions = new Array(7);







		cookieDescriptions[0] = modelyearOut;



		cookieDescriptions[1] = ownleaseOut;



		cookieDescriptions[2] = rentOut;



		cookieDescriptions[3] = typeOut;



		cookieDescriptions[4] = paadOut;



		cookieDescriptions[5] = handicapOut;



		cookieDescriptions[6] = seniorOut;











		return cookieDescriptions;



}



-->



