var xmlReq;
var ctlObj1;
var headerMsg;
var bodyMsg = "";
var pageNumber, totalPages;
var gPartType;
var expectedValue = '';
var objName1 = "MEListBox";
var webUrl = "ajaxEntry.asp";
var webMethod = "POST";
var webFunc = "me";

var imageHtml1 = "<br><table width='400'><tr><td align='right' align='right' class='bodytextdark'><img src='/en/general/ownership/images/previousPage.bmp' border='0' alt='Previous' style='cursor:pointer;cursor:hand' " +
			"onClick=\"xSubmit(document.MEListForm.ModelYearBox.options[document.MEListForm.ModelYearBox.selectedIndex].value, " +
			"document.MEListForm.ModelSeriesBox.options[document.MEListForm.ModelSeriesBox.selectedIndex].value, " +
			"2, 0); return false;\">&nbsp;<font class='bodytextdark'>"
var imageHtml2 = "</font>&nbsp;<img src='/en/general/ownership/images/nextPage.bmp' border='0' alt='Next' style='cursor:pointer;cursor:hand' " +
			"onClick=\"xSubmit(document.MEListForm.ModelYearBox.options[document.MEListForm.ModelYearBox.selectedIndex].value, " +
			"document.MEListForm.ModelSeriesBox.options[document.MEListForm.ModelSeriesBox.selectedIndex].value, " +
			"1, 0); return false;\"></td></tr></table>";
var imageHtml1_fr = "<br><table width='400'><tr><td align='right'><img src='/fr/general/ownership/images/previousPage.bmp' border='0' alt='Précédent' style='cursor:pointer;cursor:hand' " +
			"onClick=\"xSubmit(document.MEListForm.ModelYearBox.options[document.MEListForm.ModelYearBox.selectedIndex].value, " +
			"document.MEListForm.ModelSeriesBox.options[document.MEListForm.ModelSeriesBox.selectedIndex].value, " +
			"2, 0); return false;\">&nbsp;<font class='bodytextdark'>"
var imageHtml2_fr = "</font>&nbsp;<img src='/fr/general/ownership/images/nextPage.bmp' border='0' alt='Suivant' style='cursor:pointer;cursor:hand' " +
			"onClick=\"xSubmit(document.MEListForm.ModelYearBox.options[document.MEListForm.ModelYearBox.selectedIndex].value, " +
			"document.MEListForm.ModelSeriesBox.options[document.MEListForm.ModelSeriesBox.selectedIndex].value, " +
			"1, 0); return false;\"></td></tr></table>";
			
pageNumber = new Array(3);
totalPages = new Array(3);
for(var i=0; i<3; i++)
{
	pageNumber[i] = 0;
	totalPages[i] = 0;
}

function xSubmit(para1, para2, paging, partType)
{
	ctlObj1 = document.getElementById(objName1);
	gPartType = partType;

	if(!checkSelect())
	{
		ctlObj1.innerHTML = "";
		return false;
	}
	
	pageLoading(0);	
	//Manuals. PartType == 2 means show all parttypes. Only use 0 and 2
    if(partType == 0 || partType == 1)
    {
		if(paging == 1)
		{
			//increase page number		
			if(pageNumber[partType] < totalPages[partType]-1)
				pageNumber[partType]++;			
		}
		else if(paging == 2)
		{
			//decrease page number
			if(pageNumber[partType] > 0)			
				pageNumber[partType]--;			
		}
	}
	else if(partType == 2)
	{
		for(var i=0; i<3; i++)
		{
			pageNumber[i] = 0;
			totalPages[i] = 0;
		}
	}
	
	// Just demostrate the parameters in Ajax.
	if(!isMac())
		makeHistory(para1 + ',' + para2 + ',' + paging + ',' + partType + ',' + pageNumber);
	if(ajaxInit())
	{
		sendAjaxRequest(webUrl, webMethod, webFunc, para1, para2, pageNumber[partType], partType);
	}
}

function ajaxInit()
{
	var returnValue = true;
	if(window.XMLHttpRequest)
	{
		try
		{
			xmlReq = new XMLHttpRequest();
		}catch(ex)
		{
			returnValue = false;
		}
	}
	else if(window.ActiveXObject)
	{
		try
		{
			xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
		}catch(ex)
		{
			returnValue = false;
		}
	} else
	{
		returnValue = false;
	}
	return returnValue;
}

function sendAjaxRequest(url, method, func, para1, para2, para3, para4)
{  
	var urlParas;	
	urlParas = "func=" + escape(func);
	urlParas = urlParas + "&para1=" + escape(para1);
	urlParas = urlParas + "&para2=" + escape(para2);
	urlParas = urlParas + "&para3=" + escape(para3);	
	urlParas = urlParas + "&para4=" + escape(para4);
		
	xmlReq.onreadystatechange = callBack;	
	if(method == "POST")
	{	
		xmlReq.open("POST", url, true);
		xmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xmlReq.send(urlParas);
	}
	else
	{	
		xmlReq.open("GET", url+"?"+urlParas, true);
		xmlReq.send('');
	}
}

function callBack()
{
	var data;
	
	if(xmlReq.readyState == 4)
	{
		if(xmlReq.status == 200)
		{	
			//alert(xmlReq.responseXML.xml);
			//alert(xmlReq.responseText);			
			//updateXMLMsg(xmlReq.responseText);
			parseXMLData(xmlReq.responseXML);
			updateDataMsg();
		}
		else
		{
			updateXMLMsg(xmlReq.responseText);
		}
	}
}

function updateXMLMsg(data)
{
	var exp1 = /</g;
	var exp2 = />/g;
	data = data.replace(exp1, "&lt;");
	data = data.replace(exp2, "&gt;");
	ctlObj1.innerHTML = data;
}

function updateDataMsg()
{
	var f_tempInt = 0;
	if(totalPages[0] > 0)
		f_tempInt = pageNumber[0]+1;
		
	if(gPartType == 0)
	{
		ctlObj1.innerHTML = "";
		if(siteLanguage == 1)
			//ctlObj1.innerHTML = bodyMsg + imageHtml1_fr + f_tempInt + "/" + totalPages[0] + imageHtml2_fr;
			ctlObj1.innerHTML = bodyMsg;
		else
			//ctlObj1.innerHTML = bodyMsg + imageHtml1 + f_tempInt + "/" + totalPages[0] + imageHtml2;
			ctlObj1.innerHTML = bodyMsg;
	}
	else if(gPartType == 1)
	{
		;
	}
	else
	{
		ctlObj1.innerHTML = "";
		if(siteLanguage == 1)
			//ctlObj1.innerHTML = bodyMsg + imageHtml1_fr + f_tempInt + "/" + totalPages[0] + imageHtml2_fr;
			ctlObj1.innerHTML = bodyMsg;
		else
			//ctlObj1.innerHTML = bodyMsg + imageHtml1 + f_tempInt + "/" + totalPages[0] + imageHtml2;
			ctlObj1.innerHTML = bodyMsg;
	}
}

function parseXMLData(dataObj)
{
	var manualId, listName, strNodeName;
	var headerObj=dataObj.getElementsByTagName('header')[0];
	if(!headerObj)
		return false;
	var bodyObj=dataObj.getElementsByTagName('body')[0];
	if(!bodyObj)
		return false;

	headerMsg=headerObj.getElementsByTagName('message')[0].childNodes[0].nodeValue;
	bodyMsg='';
	strNodeName='';

	//Get message successfully
	if(headerMsg == "0")
	{
		var userDataObj=bodyObj.getElementsByTagName('manuals')[0];
		totalPages[0] = userDataObj.getElementsByTagName('totalpages')[0].childNodes[0].nodeValue;
		var accessoryArray=userDataObj.getElementsByTagName('item');
		for (var i=0; i<accessoryArray.length; i++)
		{			
			strNodeName = accessoryArray[i].nodeName;
			if(strNodeName.charAt(0) != "#")
			{
				manualId=accessoryArray[i].getAttribute("id");
				listName=accessoryArray[i].getAttribute("listname");
				bodyMsg=bodyMsg + "<A class='bodyhyperlink' href=\"pdftrack.asp?id=" + manualId + "\" target=\"_blank\">" + listName +"</A><BR><br>";
			}
		}
	}
}

function pageLoading(p_intHow)
{
	if(p_intHow == 0)
	{
		if(gPartType == 0)
			if(siteLanguage == 1)
				ctlObj1.innerHTML = "<P>Chargement...</P>";
			else
				ctlObj1.innerHTML = "<P>Loading...</P>";
		else if(gPartType == 1)			
			;
		else
		{
			if(siteLanguage == 1)
				ctlObj1.innerHTML = "<P>Chargement...</P>";
			else
				ctlObj1.innerHTML = "<P>Loading...</P>";
		}
	}
	else
	{
		if(gPartType == 0)
			ctlObj1.innerHTML = "";
		else if(gPartType == 1)
			;
		else
		{
			ctlObj1.innerHTML = "";
		}
	}
}

function makeHistory(newValue)
{
	window.location.hash = newValue;
}

function handleHistory()
{	
	var tempArray;
	if ( window.location.hash != expectedValue )
  	{
    	expectedValue = window.location.hash;    
    	tempArray = expectedValue.split(",");
    	if(tempArray.length!=7)
    		return false;
    	tempArray[0] = tempArray[0].substring(1);
    	pageNumber[0] = parseInt(tempArray[4]);
    	pageNumber[1] = 0;    	
    	pageNumber[2] = parseInt(tempArray[6]);
    	if(document.MEListForm.ModelYearBox.selectedIndex>0 && document.MEListForm.ModelSeriesBox.selectedIndex>0)
			xSubmit(tempArray[0], tempArray[1], 0, tempArray[3]);
  	}
  	return true;
}

function pollHash() {
	if(!isMac())
	  	handleHistory();
  	return true;
}

function checkSelect()
{
	var alertMsg_en = "Please make the following corrections:";
	var alertYear_en = "\n\n- You have not selected model year.";
	var alertModel_en = "\n\n- You have not selected a model.";
	var alertMsg_fr = "S'il vous plaît fournir l'information valide pour les domaines suivants:";
	var alertYear_fr = "\n\n- Annee.";
	var alertModel_fr = "\n\n- Modele.";
	
	if(document.MEListForm.ModelYearBox.selectedIndex<=0 || document.MEListForm.ModelSeriesBox.selectedIndex<=0)
	{
		if(siteLanguage == 1)
		{			
			if(document.MEListForm.ModelYearBox.selectedIndex<=0)
				alertMsg_fr = alertMsg_fr + alertYear_fr;
			if(document.MEListForm.ModelSeriesBox.selectedIndex<=0)		
				alertMsg_fr = alertMsg_fr + alertModel_fr;			
			alert(alertMsg_fr);
			return false;
		}
		else
		{
			if(document.MEListForm.ModelYearBox.selectedIndex<=0)
				alertMsg_en = alertMsg_en + alertYear_en;
			if(document.MEListForm.ModelSeriesBox.selectedIndex<=0)		
				alertMsg_en = alertMsg_en + alertModel_en;			
			alert(alertMsg_en);
			return false;
		}
	}
	return true;
}

function isMac()
{
	var mac = -1;
	if (navigator.userAgent) 
		mac=navigator.userAgent.search(/Mac/);
	if(mac!=-1)
		return true;
	else
		return false;
}
