/* 
  Method to populate the Year Array.
*/
function fillYear_SDI(year)
{
	 var exists = false;
	 for (i=0;i<Year_SDI.length;i++)
	 {
		if (Year_SDI[i]==year)
		{
		   exists = true;
		}
	 }
	 
	 if (!exists)
	 {
		var idx = Year_SDI.length;
		Year_SDI[idx] = year;
	 }
} 

/* 
  Method to populate the Make Array.
*/

function fillMake_SDI(year, makeKey, makeDesc,sellingSource)
{
	 var exists = false;
	 
	 for (i=0;i<Make_SDI.length;i++)
	 {
		if (Make_SDI[i][2]==makeDesc && Make_SDI[i][0]==year)
		{
		   exists = true;
		}
	 }
	 
	 if (!exists)
	 {
		var idx = Make_SDI.length;
		Make_SDI[idx] = new Array();
		Make_SDI[idx][0] = year;
		Make_SDI[idx][1] = makeKey;
		Make_SDI[idx][2] = makeDesc;
		Make_SDI[idx][3] = sellingSource;
	 }
	 fillYear_SDI(year);
}

/* 
  Method to populate the ModelSubModel Array.
*/
	
function fillModel_SDI(year,makeKey, makeDesc,modelKey, modelDesc,subModelKey, subModelDesc,sellingSource)
{
	var idx = Model_SDI.length;
	if(subModelDesc.indexOf("&#047;") != -1)
	subModelDesc = subModelDesc.replace("&#047;","/"); 

	Model_SDI[idx] = new Array();
	Model_SDI[idx][0] = makeKey;
	Model_SDI[idx][1] = modelKey;
	Model_SDI[idx][2] = modelDesc;
	Model_SDI[idx][3] = year;
	Model_SDI[idx][4] = subModelKey;
	Model_SDI[idx][5] = subModelDesc;

	fillMake_SDI(year, makeKey, makeDesc,sellingSource);
}


/*
  Method to sort the Model Array in ascending order of description
*/

function ModelSort_SDI(arrayName,length)
{
  var j, i, v1,v2,v3,v4,v5,v6, h=1, s=3, k;
  while(h < length)
    h=s*h+1;
  while(h > 1) {
    h=(h-1)/s;
    for (k=0; k<h; k++)
      for (i=k+h, j=i; i<length; i+=h, j=i) {
        v1=arrayName[i][0];
		v2=arrayName[i][1];
		v3=arrayName[i][2];
		v4=arrayName[i][3];
		v5=arrayName[i][4];
		v6=arrayName[i][5];
        while(true)
          if ((j-=h) >= 0 && (arrayName[j][2]+arrayName[j][5]) > (v3+v6)){
            arrayName[j+h][0]=arrayName[j][0];
			arrayName[j+h][1]=arrayName[j][1];
			arrayName[j+h][2]=arrayName[j][2];
			arrayName[j+h][3]=arrayName[j][3];
			arrayName[j+h][4]=arrayName[j][4];
			arrayName[j+h][5]=arrayName[j][5];
		}
          else
            break;
        arrayName[j+h][0]=v1;
        arrayName[j+h][1]=v2;
        arrayName[j+h][2]=v3;
        arrayName[j+h][3]=v4;
		arrayName[j+h][4]=v5;
		arrayName[j+h][5]=v6;
      }
  }
}

/*
  Method to sort the Make Array in ascending order of description
*/
function MakeSort_SDI(arrayName,length)
{
  var j, i, v1,v2,v3,v4, h=1, s=3, k;
  while(h < length)
    h=s*h+1;
  while(h > 1) {
    h=(h-1)/s;
    for (k=0; k<h; k++)
      for (i=k+h, j=i; i<length; i+=h, j=i) {
        v1=arrayName[i][0];
		v2=arrayName[i][1];
		v3=arrayName[i][2];
		v4=arrayName[i][3];
        while(true)
          if ((j-=h) >= 0 && arrayName[j][2] > v3){
            arrayName[j+h][0]=arrayName[j][0];
			arrayName[j+h][1]=arrayName[j][1];
			arrayName[j+h][2]=arrayName[j][2];
			arrayName[j+h][3]=arrayName[j][3];
		}
          else
            break;
        arrayName[j+h][0]=v1;
        arrayName[j+h][1]=v2;
        arrayName[j+h][2]=v3;
        arrayName[j+h][3]=v4;
      }
  }
}

/*
  Method to retrieve the modelId from the $$ seperated 
  Model SubModel DropDown value
*/

function getModelId_SDI(modelSubModel)
  {
	var modelSubModel1 = modelSubModel.split('$$');
	var Model = modelSubModel1[0];
	var subModel = modelSubModel1[1];
	return Model;

  }

/*
  Method to retrieve the subModelId from the $$ seperated 
  Model SubModel DropDown value
*/

  function getsubModelId_SDI(modelSubModel)
  {
	var modelSubModel1 = modelSubModel.split('$$');
	var Model = modelSubModel1[0];
	var subModel = modelSubModel1[1];
	return subModel;

  }


/*
  Method to select the Make when Model drop down is changed.
*/

 function loadSpecMake_SDI()
	{
		var cmbYr = document.forms.DropDown_SDI.cmbYr;
		var cmbMake= document.forms.DropDown_SDI.cmbMake;
		var cmbModel= document.forms.DropDown_SDI.cmbModel;
		var k=0;
		
		
		if ((cmbYr.options.selectedIndex != -1)&&(cmbModel.options.selectedIndex != -1))
		{	
			if((cmbMake.options.selectedIndex == 0)&&(cmbModel.options.selectedIndex != 0))
			{
				
				var selYr = cmbYr.options[cmbYr.options.selectedIndex].text;
				var selModel = cmbModel.options[cmbModel.options.selectedIndex].value;


				for (i=0; i<Model_SDI.length;i++)
				{	
					if((Model_SDI[i][3]==selYr)&&(Model_SDI[i][1]+"$$"+Model_SDI[i][4]==selModel))
					{
						var selMake = Model_SDI[i][0];
						for(k=0;k<cmbMake.length;k++)
						{
							if(cmbMake.options[k].value==selMake)
							{
								cmbMake.options.selectedIndex = k;
								break;
							}
							
						}
					}
				}
				selectModel_SDI = selModel;
				

				// call to load the Model  when make drop down is changed. 
				loadDiffModel_SDI();
			}
			else if((cmbMake.options.selectedIndex != 0)&&(cmbModel.options.selectedIndex != 0))
			{
				var selYr = cmbYr.options[cmbYr.options.selectedIndex].text;
				var selModel = cmbModel.options[cmbModel.options.selectedIndex].value;
				var selMake = cmbMake.options[cmbMake.options.selectedIndex].value;

				for (i=0; i<Model_SDI.length;i++)
				{	
					if((Model_SDI[i][3]==selYr)&&(Model_SDI[i][1]+"$$"+Model_SDI[i][4]==selModel)&&(Model_SDI[i][0]==selMake))
					{
						document.forms.DropDown_SDI.modelDesc.value = Model_SDI[i][2];
						document.forms.DropDown_SDI.subModelDesc.value = Model_SDI[i][5];
					}
				}

			}
		}
	}
	

/*
	Method to assign the modelDescription and subModelDescription on change of the ModelSubModel dropdown

*/

function loadSpecBACMake_SDI()
{
	var cmbModel= document.forms.DropDown_SDI.cmbModel;

	for (i=0; i<Model_SDI.length;i++)
	{	
		if((Model_SDI[i][1]+"$$"+Model_SDI[i][4]==cmbModel.options[cmbModel.options.selectedIndex].value))
		{
			document.forms.DropDown_SDI.modelDesc.value = Model_SDI[i][2];
			document.forms.DropDown_SDI.subModelDesc.value = Model_SDI[i][5];
		}
	}
}



/*
  Method to load the Model  when make drop down is changed. 
*/
	function loadDiffModel_SDI()
	{
		var cmbYr = document.forms.DropDown_SDI.cmbYr;
		var cmbMake= document.forms.DropDown_SDI.cmbMake;
		var cmbModel= document.forms.DropDown_SDI.cmbModel;
		var j=0,k=0;
		var iniIndex="Nan";


		cmbModel.length=0;
		cmbModel.options[0]=new Option("Select a Model");
		cmbModel.options[0].value="";
		

		if ((cmbYr.options.selectedIndex != -1)&&(cmbMake.options.selectedIndex != -1))
		{	
			var selYear = cmbYr.options[cmbYr.options.selectedIndex].value;
			if(cmbMake.options.selectedIndex != 0)
			{
				var selMake = 	cmbMake.options[cmbMake.options.selectedIndex].text;
				var selMakeId = cmbMake.options[cmbMake.options.selectedIndex].value;

				for(i=0;i<Make_SDI.length;i++)
				{
					if((Make_SDI[i][1]==selMakeId))
					{
						document.forms.DropDown_SDI.sellingSource.value=Make_SDI[i][3];
						break;
					}
				}
				for (i=0; i<Model_SDI.length;i++)
				{	
					if((Model_SDI[i][0]==selMakeId)&&(Model_SDI[i][3]==selYear))
					{
						cmbModel.options[j+1]=new Option(Model_SDI[i][2]+" "+Model_SDI[i][5]);
						cmbModel.options[j+1].value=Model_SDI[i][1]+"$$"+Model_SDI[i][4];

						if(cmbModel.options[j+1].value==selectModel_SDI)
						{
							cmbModel.options.selectedIndex = j+1;
							document.forms.DropDown_SDI.modelDesc.value = Model_SDI[i][2];
							document.forms.DropDown_SDI.subModelDesc.value = Model_SDI[i][5];
						}
						else if(iniIndex == "Nan")
						{
							iniIndex=i;
						}
						
						j++;
					}
				}
				if((selectModel_SDI == "")&&cmbModel.length==1)
				{
					cmbModel.selectedIndex = 0;	
					if(iniIndex!="Nan")
					{
						document.forms.DropDown_SDI.modelDesc.value = Model_SDI[iniIndex][2];
						document.forms.DropDown_SDI.subModelDesc.value = Model_SDI[iniIndex][5];
					}
				}
				else if(selectModel_SDI == "")
				{
					cmbModel.selectedIndex = 1;	
					if(iniIndex!="Nan")
					{
						document.forms.DropDown_SDI.modelDesc.value = Model_SDI[iniIndex][2];
						document.forms.DropDown_SDI.subModelDesc.value = Model_SDI[iniIndex][5];
					}
				}
			}
			else
			{	
				var selYr = cmbYr.options[cmbYr.options.selectedIndex].text;
				for (i=0; i<Model_SDI.length;i++)
				{	
					if(Model_SDI[i][3]==selYr)
					{
						cmbModel.options[j+1]=new Option(Model_SDI[i][2]+" "+Model_SDI[i][5]);
						cmbModel.options[j+1].value=Model_SDI[i][1]+"$$"+Model_SDI[i][4];
						
						if(cmbModel.options[j+1].value==selectModel_SDI)
						{
							cmbModel.options.selectedIndex = j+1;
							document.forms.DropDown_SDI.modelDesc.value = Model_SDI[i][2];
							document.forms.DropDown_SDI.subModelDesc.value = Model_SDI[i][5];
						}
						j++;
					}
				}
			}
		}
		selectModel_SDI = "";	
	}

/*
  Method to load the ModelSubMOdel dropdown after the year and MAke dropdowns are loaded

*/
    function loadModel_SDI()
    {
		var cmbYr = document.forms.DropDown_SDI.cmbYr;
		var cmbMake= document.forms.DropDown_SDI.cmbMake;
		var cmbModel= document.forms.DropDown_SDI.cmbModel;
		var j=0,k=0;

		
		cmbModel.options[0]=null;

		cmbModel.length=0;
		cmbModel.options[0]=new Option("Select a Model");
		cmbModel.options[0].value="";
		cmbModel.options.selectedIndex = 0;	
		var iniIndex=""
		
		if ((cmbYr.options.selectedIndex != -1)&&(cmbMake.options.selectedIndex != -1))
		{	
			var selYear = cmbYr.options[cmbYr.options.selectedIndex].value;
			if(cmbMake.options.selectedIndex != 0)
			{
				var selMake = cmbMake.options[cmbMake.options.selectedIndex].text;
				var selMakeId = cmbMake.options[cmbMake.options.selectedIndex].value;

				for(i=0;i<Make_SDI.length;i++)
				{
					if((Make_SDI[i][1]==selMakeId))
					{
						document.forms.DropDown_SDI.sellingSource.value=Make_SDI[i][3];
						break;
					}
				}
				
				for (i=0; i<Model_SDI.length;i++)
				{	
					if((Model_SDI[i][0]==selMakeId)&&(Model_SDI[i][3]==selYear))
					{
						cmbModel.options[j+1]=new Option(Model_SDI[i][2]+" "+Model_SDI[i][5]);
						cmbModel.options[j+1].value=Model_SDI[i][1]+"$$"+Model_SDI[i][4];
					
						if(cmbModel.options[j+1].value==selectModel_SDI)
						{
							cmbModel.options.selectedIndex = j+1;
							document.forms.DropDown_SDI.modelDesc.value = Model_SDI[i][2];
							document.forms.DropDown_SDI.subModelDesc.value = Model_SDI[i][5];

						}
						else if((model_id_SDI==Model_SDI[i][1])&&(Model_SDI[i][3]==yr_id_SDI)&&(subModel_id_SDI==Model_SDI[i][4]))
						{
							cmbModel.options.selectedIndex = j+1;
							document.forms.DropDown_SDI.modelDesc.value = Model_SDI[i][2];
							document.forms.DropDown_SDI.subModelDesc.value = Model_SDI[i][5];
						}
						else
						{	
							if(iniIndex=="")
								iniIndex= i ;

						}
						j++;
					}

				}

				if((selectModel_SDI == "")&&cmbModel.length==1)
				{
					cmbModel.options.selectedIndex = 0;	
					if(iniIndex!="")
					{
						document.forms.DropDown_SDI.modelDesc.value = Model_SDI[iniIndex][2];
						document.forms.DropDown_SDI.subModelDesc.value = Model_SDI[iniIndex][5];
					}
				}
				/*else if(selectModel_SDI == "")
				{
					cmbModel.options.selectedIndex = 1;	
					if(iniIndex!="")
					{
						document.forms.DropDown_SDI.modelDesc.value = Model[iniIndex][2];
						document.forms.DropDown_SDI.subModelDesc.value = Model[iniIndex][5];
					}

				}*/

			}
			else
			{	
				var selYr = cmbYr.options[cmbYr.options.selectedIndex].text;
				var loadMake="";
				for (i=0; i<Model_SDI.length;i++)
				{	
					if(Model_SDI[i][3]==selYr)
					{
						cmbModel.options[j+1]=new Option(Model_SDI[i][2]+" "+Model_SDI[i][5]);
						cmbModel.options[j+1].value=Model_SDI[i][1]+"$$"+Model_SDI[i][4];
				
						if(cmbModel.options[j+1].value==selectModel_SDI)
						{
		    				 cmbModel.options.selectedIndex = j+1;
						 	document.forms.DropDown_SDI.modelDesc.value = Model_SDI[i][2];
							document.forms.DropDown_SDI.subModelDesc.value = Model_SDI[i][5];
						}
						else if(Model_SDI[i][1]==model_id_SDI&&(Model_SDI[i][3]==yr_id_SDI)&&(subModel_id_SDI==Model_SDI[i][4]))
						{
		   					 cmbModel.options.selectedIndex = j+1;
							 loadMake = "true";	
						 	document.forms.DropDown_SDI.modelDesc.value = Model_SDI[i][2];
							document.forms.DropDown_SDI.subModelDesc.value = Model_SDI[i][5];
						}
 		
						j++;
					}
				}
				if(loadMake=="true")
				{
					//call to select the Make when Model drop down is changed.
					loadSpecMake_SDI();
				}
			}
		}
		selectModel_SDI = "";
   }

/*
  Method to load the Make Drop Down when the year selection is changed.

*/

	function loadDiffMake_SDI()
	{
		var cmbYr = document.forms.DropDown_SDI.cmbYr;
		var cmbMake= document.forms.DropDown_SDI.cmbMake;
		var j=0;

		cmbMake.length=0;
		cmbMake.options[0]=new Option("Select Brand");
		cmbMake.options[0].value="";
		cmbMake.selectedIndex = 0;

		
		if (cmbYr.options.selectedIndex != -1)
		{	
			var selYear = cmbYr.options[cmbYr.options.selectedIndex].value;
			for (i=0; i<Make_SDI.length;i++)
			{
				if(Make_SDI[i][0]==selYear)
				{
					cmbMake.options[j+1]=new Option(Make_SDI[i][2]);
					cmbMake.options[j+1].value=Make_SDI[i][1];
					document.forms.DropDown_SDI.sellingSource.value=Make_SDI[i][3]
					
					j++;
				}
			}
			// call to load the Model  when make drop down is changed. 
			loadDiffModel_SDI();
		}


	}

 /*
  Method to load the Make text field value when Dealer Information is known
  when Year value is changed
*/
	function loadDiffMakeBAC_SDI()
	{
		var cmbYr = document.forms.DropDown_SDI.cmbYr;
		if ((cmbYr.options.selectedIndex != -1))
		{	
			if(Make_SDI.length!=0)
			{
				var selYear = cmbYr.options[cmbYr.options.selectedIndex].value;
				for (i=0; i<Make_SDI.length;i++)
				{
					if(Make_SDI[i][0]==selYear)
					{
				
						document.forms.DropDown_SDI.txtMake.value = Make_SDI[i][2];
						//UAT Issue Id 144 Fix - Poornima
						document.forms.DropDown_SDI.txtMake.size=Make_SDI[i][2].length+4;
						// End of Issue 144 Fix

						document.forms.DropDown_SDI.MakeId.value = Make_SDI[i][1];
						document.forms.DropDown_SDI.sellingSource.value=Make_SDI[i][3];
					}
				}
			}
			else
			{
				document.forms.DropDown_SDI.txtMake.value = "";
				document.forms.DropDown_SDI.MakeId.value = "";
				document.forms.DropDown_SDI.sellingSource.value="";
			}
			//call to load Model when year was changed and make text field updated accordingly.
			loadModelBAC_SDI();
		}
	}
	
/*
  Method to load the Model field value when Dealer Information is known
  when Year value is changed, called after loading the corresponding make value.
*/

	function loadModelBAC_SDI()
	{
		var cmbYr = document.forms.DropDown_SDI.cmbYr;
		var cmbModel= document.forms.DropDown_SDI.cmbModel;
		var j=0,k=0;

		
		cmbModel.options[0]=null;

		cmbModel.length=0;
		cmbModel.options[0]=new Option("Select a Model");
		cmbModel.options[0].value="";
		cmbModel.selectedIndex = 0;	
		var iniIndex="";

		
		if ((cmbYr.options.selectedIndex != -1)&&document.forms.DropDown_SDI.MakeId.value!="")
		{	
			var selYear = cmbYr.options[cmbYr.options.selectedIndex].value;
			if(document.forms.DropDown_SDI.MakeId.value != "")
			{
				var selMake = 	document.forms.DropDown_SDI.MakeId.value;
				
				for (i=0; i<Model_SDI.length;i++)
				{	
					if((Model_SDI[i][0]==selMake)&&(Model_SDI[i][3]==selYear))
					{
						cmbModel.options[j+1]=new Option(Model_SDI[i][2]+" "+Model_SDI[i][5]);
						cmbModel.options[j+1].value=Model_SDI[i][1]+"$$"+Model_SDI[i][4];

						if(cmbModel.options[j+1].value==selectModel_SDI)
						{
							cmbModel.options.selectedIndex = j+1;
							document.forms.DropDown_SDI.modelDesc.value = Model_SDI[i][2];
							document.forms.DropDown_SDI.subModelDesc.value = Model_SDI[i][5];
							

						}
						else if((model_id_SDI==Model_SDI[i][1])&&(Model_SDI[i][3]==yr_id_SDI)&&(subModel_id_SDI==Model_SDI[i][4]))
						{
							document.forms.DropDown_SDI.modelDesc.value = Model_SDI[i][2];
							document.forms.DropDown_SDI.subModelDesc.value = Model_SDI[i][5];
							cmbModel.options.selectedIndex = j+1;
							
						}
						else if(iniIndex=="")
							iniIndex=i;
						j++;
					}
				}

				if((selectModel_SDI == "")&&cmbModel.length==1)
				{
					cmbModel.options.selectedIndex = 0;	
					if(iniIndex!="")
					{
						document.forms.DropDown_SDI.modelDesc.value = Model_SDI[iniIndex][2];
						document.forms.DropDown_SDI.subModelDesc.value = Model_SDI[iniIndex][5];
						
						
					}
				}
				/*else if(selectModel_SDI == "")
				{
					if(iniIndex!="")
					{
						document.forms.DropDown_SDI.modelDesc.value = Model[iniIndex][2];
						document.forms.DropDown_SDI.subModelDesc.value = Model[iniIndex][5];
					}
					cmbModel.options.selectedIndex = 1;	
				}*/

				

			}
		}
	}


/*
  Method to load the Make Drop Down after the selection of the year value.

*/
	function loadMake_SDI()
	{
		
		var cmbYr = document.forms.DropDown_SDI.cmbYr;
		if(document.forms.DropDown_SDI.BacCode.value=="true")
		{
			
			if(Make_SDI.length!=0)
			{
				var selYear = cmbYr.options[cmbYr.options.selectedIndex].value;
				for (i=0; i<Make_SDI.length;i++)
				{
					if(Make_SDI[i][0]==selYear)
					{
				
						document.forms.DropDown_SDI.txtMake.value = Make_SDI[i][2];
						//UAT Issue Id 144 Fix - Poornima
						document.forms.DropDown_SDI.txtMake.size=Make_SDI[i][2].length+4;
						// End of Issue 144 Fix

						document.forms.DropDown_SDI.MakeId.value = Make_SDI[i][1];
						document.forms.DropDown_SDI.sellingSource.value=Make_SDI[i][3];
					}
				}
				
			}
			else
			{
				document.forms.DropDown_SDI.txtMake.value = "";
				document.forms.DropDown_SDI.MakeId.value = "";
				document.forms.DropDown_SDI.sellingSource.value="";
			}
			//call to load Model when year was changed and make text field updated accordingly.
			loadModelBAC_SDI();
		}
		else
		{
		
			var cmbMake= document.forms.DropDown_SDI.cmbMake;
			var j=0;
			
			cmbMake.options[0]=null;
			cmbMake.length=0;
			cmbMake.options[0]=new Option("Select Brand");
			cmbMake.options[0].value="";
			cmbMake.selectedIndex = 0;

			

			if (cmbYr.options.selectedIndex != -1)
			{	
				var selYear = cmbYr.options[cmbYr.options.selectedIndex].value;
				for (i=0; i<Make_SDI.length;i++)
				{
					if(Make_SDI[i][0]==selYear)
					{
						cmbMake.options[j+1]=new Option(Make_SDI[i][2]);
						cmbMake.options[j+1].value=Make_SDI[i][1];
						if(Make_SDI[i][1]==make_id_SDI&&(Make_SDI[i][0]==yr_id_SDI))
						{
							cmbMake.selectedIndex=j+1;
							document.forms.DropDown_SDI.sellingSource.value=Make_SDI[i][3]
						}
						j++;
					}
				}
				//call to load the ModelSubMOdel dropdown after the year and MAke dropdowns are loaded
				loadModel_SDI();
			}
		}
	}

/*
  Method to load the Year DropDown on load of the page.

*/
  function loadYear_SDI()
  {
     
	 var i=0;
	 var d = new Date();
	 var yr = d.getFullYear();
	 var cmbYr = document.forms.DropDown_SDI.cmbYr;
	 var flag="";

	
	
	cmbYr.options[0]=null;
	cmbYr.length=0;
    for (i=0; i<Year_SDI.length; i++)
    {
        cmbYr.options[i]=new Option(Year_SDI[i]);
        cmbYr.options[i].value=Year_SDI[i];
		if(yr_id_SDI==Year_SDI[i])	
		{
			cmbYr.selectedIndex = i;
			flag = "set";
		}
		else if((yr==Year_SDI[i])&& flag!="set")
		{	
			cmbYr.selectedIndex = i;
			
		}
    }
	if(yr_id_SDI=="")
		yr_id_SDI = cmbYr.options[cmbYr.options.selectedIndex].value;

	//call to load the make dropdown (or text field when Dealer information is known)
	loadMake_SDI();
  }