﻿// JScript File
// function to clear the selected listbox

function clearListBox(objSourceElement)
{
    if (objSourceElement != null)
    {
        var intRowCount = objSourceElement.options.length;
        while (intRowCount >= 0 ) 
        {
            objSourceElement.remove(intRowCount);  //Remove the item from objSourceElement      
            intRowCount--;
        }
    }
}

// function to add an item to listbox
function addToListBox(objSourceElement, strValue)
{

    // check for existing same identifer since it is a manual entry
    if(!isExists(objSourceElement,strValue))
    {
        var intSourceElementLen = objSourceElement.length++;
        objSourceElement.options[intSourceElementLen].text = strValue;
        objSourceElement.options[intSourceElementLen].value = strValue;
    }
    else
    {
        // to do 
        //display message to the user for duplicate
        
    }    
}

function addToListBox(objSourceElement, strValue,strID)
{

    // check for existing same identifer since it is a manual entry
    if(!isExists(objSourceElement,strValue))
    {
        var intSourceElementLen = objSourceElement.length++;
        objSourceElement.options[intSourceElementLen].text = strValue;
        objSourceElement.options[intSourceElementLen].value = strID;
    }
    else
    {
        // to do 
        //display message to the user for duplicate
        
    }    
}

function isExists(objSourceElement,strOptionText)
{

    var blnExists = false;
    for (var i=0;i<objSourceElement.options.length;i++)
    {
        if(strOptionText == objSourceElement.options[i].text)
        {
            blnExists = true;
            i = objSourceElement.options.length
        }
    }
    return blnExists;
}

// function for ajax call to generate identifiers
function getChromeIdentiferFromServer(objYearId,objMakeId,objModelId,objStatusId,sendType,questionID, selectText)
{
    var callingClientID;
    if (sendType != 'style')
	{
	    var requestContentDocument = UPSXmlEngine.prototype.createXmlDocument("xml", "");
	    var obDocumentElement;
	    if(sendType == 'year')
	    {
	      clearListBox(objMakeId);
	      clearListBox(objModelId);
	      clearListBox(objStatusId);
	      obDocumentElement = requestContentDocument.createAjaxRequestNode("PAM_GetAutoMakerForSelectedYear");     
	    }
	    else if(sendType == 'maker')
	    {
	       
	      clearListBox(objModelId);
	      clearListBox(objStatusId);
	      document.getElementById(objMakeId.id + "_hid").value  = objMakeId.value;
          document.getElementById(objModelId.id + "_hid").value  = objModelId.value;
          document.getElementById(objStatusId.id + "_hid").value  = objStatusId.value;
          obDocumentElement = requestContentDocument.createAjaxRequestNode("PAM_GetModelForSelectedYearAndMaker");     
	    }
	    else if(sendType == 'model')
	    {
	      
	       clearListBox(objStatusId);
	       document.getElementById(objMakeId.id + "_hid").value  = objMakeId.value;
           document.getElementById(objModelId.id + "_hid").value  = objModelId.value;
           document.getElementById(objStatusId.id + "_hid").value  = objStatusId.value;
	       obDocumentElement = requestContentDocument.createAjaxRequestNode("PAM_GetStyleForSelectedYearMakerAndModel");     
	    }
    	
	    requestContentDocument.addDocumentElement(obDocumentElement);
	    var varRequestbodyNode = requestContentDocument.createElementNode("requestBody","");
	    requestContentDocument.addElementToRoot(varRequestbodyNode);
	    var varIdentifierTypeNode = new UPSAjaxObject.GetAutoIdentifier();
	    if(sendType == 'year')
	    {
	      callingClientID = objYearId;
	      if(objYearId.selectedIndex > 0)
	      {
	        varIdentifierTypeNode.setYearId(objYearId.value);
	        requestID = objYearId.value;
	      }
	      else
	      {
	         if(objMakeId.options.length <= 0)
                    objMakeId.options[objMakeId.options.length] = new Option(selectText, "0");
             if(objModelId.options.length <= 0)
                    objModelId.options[objModelId.options.length] = new Option(selectText, "0");
             if(objStatusId.options.length <= 0)
                    objStatusId.options[objStatusId.options.length] = new Option(selectText, "0");
	         return false;
	      }
	    }
	    else if(sendType == 'maker')
	    {
	      callingClientID = objMakeId
	      if(objMakeId.selectedIndex > 0 && objYearId.selectedIndex > 0)
	      {
	        varIdentifierTypeNode.setYearId(objYearId.value);
	        varIdentifierTypeNode.setMakerId(objMakeId.value);
	        requestID = objMakeId.value;
	      }
	      else
	      {
	        if(objModelId.options.length <= 0)
                    objModelId.options[objModelId.options.length] = new Option(selectText, "0");
            if(objStatusId.options.length <= 0)
                    objStatusId.options[objStatusId.options.length] = new Option(selectText, "0");
	        return false;
	      }
	    }
	    else if(sendType == 'model')
	    {
	      callingClientID = objModelId;
	      if(objMakeId.selectedIndex > 0 && objYearId.selectedIndex > 0 && objModelId.selectedIndex > 0 )
	      {
	        varIdentifierTypeNode.setYearId(objYearId.value);
	        varIdentifierTypeNode.setMakerId(objMakeId.value);
	        varIdentifierTypeNode.setModelId(objModelId.value);
	        requestID = objModelId.value;
	      }
	      else
	      {
	        if(objStatusId.options.length <= 0)
                    objStatusId.options[objStatusId.options.length] = new Option(selectText, "0");
	        return false;
	      }
	    }
    	
	    requestContentDocument.addElementToParent(varRequestbodyNode, varIdentifierTypeNode.toXmlNode(requestContentDocument));
	    sendChromeIdentifierProviderXmlRequest("../AjaxDataPage.aspx", requestContentDocument,objYearId,objMakeId,objModelId,objStatusId,sendType, requestID, selectText);	
	}
	else
	{
        document.getElementById(objMakeId.id + "_hid").value  = objMakeId.value;
        document.getElementById(objModelId.id + "_hid").value  = objModelId.value;
        document.getElementById(objStatusId.id + "_hid").value  = objStatusId.value;	 
        
        callingClientID = objStatusId;
	}	
	
	ChangeDropDownAnswerValue(callingClientID,questionID);
}

function sendChromeIdentifierProviderXmlRequest(strPage, obXmlContent,objYearId,objMakeId,objModelId,objStatusId,sendType, requestID, selectText)
{
	var reqTransport = g_oAjaxEngine.getXmlHTTPTransport();
	var reqObject = new UPSAjaxObject.AjaxRequest();
	reqObject.setRequestTransport(reqTransport);
	reqObject.setRequestTarget(strPage);
	reqObject.setTypePOST();
	reqObject.addRequestContent(obXmlContent.getDocument());
	reqObject.openRequest(true);
	reqTransport.onreadystatechange=function()
	{
		if (reqTransport.readyState==4)
		{
			setChromeIdentifierProvider(reqTransport.responseXML,objYearId,objMakeId,objModelId,objStatusId,sendType, requestID, selectText);
		}
	}
	reqObject.sendRequest(reqTransport.responseXML);
}

function setChromeIdentifierProvider(oResponseNode,objYearId,objMakeId,objModelId,objStatusId,sendType, requestID, selectText)
{

    var ajaxResponse = new UPSAjaxObject.AjaxResponse();
	ajaxResponse.parseXmlResponse(oResponseNode);			
	if (ajaxResponse.getStatusCode() != 200)
	{
		//alert("Unable to get Auto Identifier Information.  Contact the IT Helpdesk");
		//Do nothing
	}
	else
	{
        var oResponseBody = ajaxResponse.getResponseBody();
		var identifierNode = oResponseBody.selectSingleNode("AutoIdentifiers");
		if (identifierNode != null && sendType != "")
		{
		   // We only populate the combo box if the parent answerid that was sent for fulfillment is the currently selected parent answerID.
		   // This can happen if the user is changing the parent answerID faster than the system is fulfilling the AJAX response.
           if(sendType == 'year' && requestID == objYearId.value)
                 populateComboBox(identifierNode ,objMakeId, selectText);
	       else if(sendType == 'maker' && requestID == objMakeId.value)
	             populateComboBox(identifierNode ,objModelId, selectText);
	       else if(sendType == 'model' && requestID == objModelId.value)
	             populateComboBox(identifierNode ,objStatusId, selectText);
		}
     }
}

function populateComboBox(autoXMLListNode,elem, selectText)
{
    var autoXMLNodes=autoXMLListNode.selectNodes("auto");
    if (autoXMLNodes != null && autoXMLNodes.length > 0)
    {
        for(var counter = 0; counter < autoXMLNodes.length; counter++)
        {
	        // Process the XML containing the Affirmation ID, Text & Checked property
	        var autoID = autoXMLNodes[counter].attributes.getNamedItem("id").value;
	        var autoText = autoXMLNodes[counter].attributes.getNamedItem("text").value;
            if(elem.options.length <= 0)
                elem.options[elem.options.length] = new Option(selectText, "0");
            // add the item to combo
            elem.options[elem.options.length] = new Option(autoText, autoID);
        }	
    }
}

// function for ajax call to generate identifiers
function getSpecialQIdentiferFromServer(objAnswerId,objChildAnswerId,sendType,questionID, selectText)
{
    var callingClientID;
    var requestContentDocument = UPSXmlEngine.prototype.createXmlDocument("xml", "");
    var obDocumentElement;
    if(sendType == 'answer')
    {
        //clearListBox(document.getElementById(objChildAnswerId));
        clearListBox(objChildAnswerId);
        obDocumentElement = requestContentDocument.createAjaxRequestNode("PAM_GetSpecialQForSelectedAnswer");     
        callingClientID = objAnswerId;
        requestContentDocument.addDocumentElement(obDocumentElement);
        var varRequestbodyNode = requestContentDocument.createElementNode("requestBody","");
        requestContentDocument.addElementToRoot(varRequestbodyNode);
        var varIdentifierTypeNode = new UPSAjaxObject.GetSpecialQIdentifier();
        //if(document.getElementById(objAnswerId).selectedIndex > 0)
        if(objAnswerId.selectedIndex > 0)
        {
            //varIdentifierTypeNode.setAnswerId(document.getElementById(objAnswerId).value);
            varIdentifierTypeNode.setAnswerId(objAnswerId.value);
        }
        else
        {
            if(objChildAnswerId.options.length <= 0)
                    objChildAnswerId.options[objChildAnswerId.options.length] = new Option(selectText, "0");
          
            return false;
        }
        requestContentDocument.addElementToParent(varRequestbodyNode, varIdentifierTypeNode.toXmlNode(requestContentDocument));
        sendSpecialQIdentifierProviderXmlRequest("../AjaxDataPage.aspx", requestContentDocument,objAnswerId,objChildAnswerId,sendType, selectText);	
    }
    else
    {
      document.getElementById(objChildAnswerId.id + "_hid").value  = objChildAnswerId.value;	 
      callingClientID = objChildAnswerId;
    }
	ChangeDropDownAnswerValue(callingClientID,questionID);
}

function sendSpecialQIdentifierProviderXmlRequest(strPage, obXmlContent,objAnswerId,objChildAnswerId,sendType, selectText)
{
	var reqTransport = g_oAjaxEngine.getXmlHTTPTransport();
	var reqObject = new UPSAjaxObject.AjaxRequest();
	var answerID = objAnswerId.value;
	reqObject.setRequestTransport(reqTransport);
	reqObject.setRequestTarget(strPage);
	reqObject.setTypePOST();
	reqObject.addRequestContent(obXmlContent.getDocument());
	reqObject.openRequest(true);
	reqTransport.onreadystatechange=function()
	{
		if (reqTransport.readyState==4)
		{
			setSpecialQIdentifierProvider(reqTransport.responseXML,objAnswerId,objChildAnswerId,sendType,answerID, selectText);
		}
	}
	reqObject.sendRequest(reqTransport.responseXML);
}

function setSpecialQIdentifierProvider(oResponseNode,objAnswerId,objChildAnswerId,sendType, answerID, selectText)
{
    var ajaxResponse = new UPSAjaxObject.AjaxResponse();
	ajaxResponse.parseXmlResponse(oResponseNode);			
	if (ajaxResponse.getStatusCode() != 200)
	{
		//alert("Unable to get Child Identifier Information.  Contact the IT Helpdesk");
		//Do nothing
	}
	else
	{
        var oResponseBody = ajaxResponse.getResponseBody();
		var identifierNode = oResponseBody.selectSingleNode("AutoIdentifiers");
		if (identifierNode != null && sendType == 'answer' )
		{
		   // We only populate the combo box if the parent answerid that was sent for fulfillment is the currently selected parent answerID.
		   // This can happen if the user is changing the parent answerID faster than the system is fulfilling the AJAX response.
           if(answerID == objAnswerId.value)
           {
               populateComboBox(identifierNode, objChildAnswerId, selectText);
           }
	   	}
     }
}
function saveAJAXPanelistAnswers(profileObjects,btnSave,counter,profileTypeID,panelistID)
{
    //debugger;
    var requestContentDocument = UPSXmlEngine.prototype.createXmlDocument("xml", "");
    var obDocumentElement = requestContentDocument.createAjaxRequestNode("PAM_SavePanelistAnswers");
    requestContentDocument.addDocumentElement(obDocumentElement);
    var varRequestbodyNode = requestContentDocument.createElementNode("requestBody","");
    requestContentDocument.addElementToRoot(varRequestbodyNode);
    
    //AddrValidCounter Node
    addNodeElementToRequestbodyNode(requestContentDocument,varRequestbodyNode,"AddrValidCounter","counter",counter);
    //Panelist Node    
    addNodeElementToRequestbodyNode(requestContentDocument,varRequestbodyNode,"Panelist","panelistid",panelistID);
    //ProfileType Node    
    addNodeElementToRequestbodyNode(requestContentDocument,varRequestbodyNode,"ProfileType","profiletypeid",profileTypeID);
    
    for(var index=0;index<profileObjects.length;index++) 	
    {
        var varProfileObject = profileObjects[index];
        requestContentDocument.addElementToParent(varRequestbodyNode, varProfileObject.toXmlNode(requestContentDocument));
    }
    sendSavePanelistAnswersXmlRequest("../AjaxDataPage.aspx", requestContentDocument,btnSave);	
}
function sendSavePanelistAnswersXmlRequest(strPage, obXmlContent,btnSave)
{
	var reqTransport = g_oAjaxEngine.getXmlHTTPTransport();
	var reqObject = new UPSAjaxObject.AjaxRequest();
	reqObject.setRequestTransport(reqTransport);
	reqObject.setRequestTarget(strPage);
	reqObject.setTypePOST();
	reqObject.addRequestContent(obXmlContent.getDocument());
	reqObject.openRequest(true);
	reqTransport.onreadystatechange=function()
	{
		if (reqTransport.readyState==4)
		{
		    
			var ajaxResponse = new UPSAjaxObject.AjaxResponse();
			ajaxResponse.parseXmlResponse(reqTransport.responseXML);			
	        if (ajaxResponse.getStatusCode() != 200)
	        {
		        btnSave.disabled=false;
		        document.body.style.cursor="default";
	        }
	        else
	        {
                var oResponseBody = ajaxResponse.getResponseBody();
		        var statusNode = oResponseBody.selectSingleNode("Status");
		        var isSaved=statusNode.attributes.getNamedItem("value").value;
		        if(isSaved!=null && isSaved=="True")
		        {
		            var redirectUrl=statusNode.selectSingleNode("Redirect");
		            var url =redirectUrl.attributes.getNamedItem("url").value;
		            if(url!=null && url!="")
		            {
		                window.location=url;
		            }
		        }
		        else
		        {
		            var errorMessageNode=statusNode.selectSingleNode("ErrorMessage");
		            var errorMessage="";
		             if(errorMessageNode != null && errorMessageNode != undefined)
		                errorMessage = errorMessageNode.attributes.getNamedItem("message").value;
		                
		            DisplayErrorMessage(errorMessage);
		            document.body.style.cursor="default";
		            btnSave.disabled=false;
		        }
		    }
		 }
		
	}
	reqObject.sendRequest(reqTransport.responseXML);
}
function registerAJAXPanelist(profileObjects,btnSave,captchaText,brandID,cultureID,regCreativeID, regSourceIdentifierID, referringPanelistID, counter,captchaGUID)
{
    //debugger;
    var requestContentDocument = UPSXmlEngine.prototype.createXmlDocument("xml", "");
    var obDocumentElement = requestContentDocument.createAjaxRequestNode("PAM_RegisterPanelist");
    requestContentDocument.addDocumentElement(obDocumentElement);
    var varRequestbodyNode = requestContentDocument.createElementNode("requestBody","");
    requestContentDocument.addElementToRoot(varRequestbodyNode);
    
    //AddrValidCounter Node
    addNodeElementToRequestbodyNode(requestContentDocument,varRequestbodyNode,"AddrValidCounter","counter",counter);
    //ReferringPanelist Node    
    addNodeElementToRequestbodyNode(requestContentDocument,varRequestbodyNode,"ReferringPanelist","referringpanelistid",referringPanelistID);
    //RegSourceIdentifier Node    
    addNodeElementToRequestbodyNode(requestContentDocument,varRequestbodyNode,"RegSourceIdentifier","regsourceidentifierid",regSourceIdentifierID);
    //CaptchaText Node
    addNodeElementToRequestbodyNode(requestContentDocument,varRequestbodyNode,"CaptchaText","captchatext",captchaText);
    //captchaGUID Node 
    addNodeElementToRequestbodyNode(requestContentDocument,varRequestbodyNode,"CaptchaGUID","captchaguid",captchaGUID);
    //Brand Node
    addNodeElementToRequestbodyNode(requestContentDocument,varRequestbodyNode,"Brand","brandid",brandID);
    //Culture Node 
    addNodeElementToRequestbodyNode(requestContentDocument,varRequestbodyNode,"Culture","cultureid",cultureID);
    //RegCreative Node
    addNodeElementToRequestbodyNode(requestContentDocument,varRequestbodyNode,"RegCreative","regcreativeid",regCreativeID);
  
    for(var index=0;index<profileObjects.length;index++) 	
    {
        var varProfileObject = profileObjects[index];
        requestContentDocument.addElementToParent(varRequestbodyNode, varProfileObject.toXmlNode(requestContentDocument));
    }
    sendRegisterPanelistXmlRequest("../AjaxDataPage.aspx", requestContentDocument,btnSave);	
}
function sendRegisterPanelistXmlRequest(strPage, obXmlContent,btnSave)
{
	var reqTransport = g_oAjaxEngine.getXmlHTTPTransport();
	var reqObject = new UPSAjaxObject.AjaxRequest();
	reqObject.setRequestTransport(reqTransport);
	reqObject.setRequestTarget(strPage);
	reqObject.setTypePOST();
	reqObject.addRequestContent(obXmlContent.getDocument());
	reqObject.openRequest(true);
	reqTransport.onreadystatechange=function()
	{
		if (reqTransport.readyState==4)
		{
		    
			var ajaxResponse = new UPSAjaxObject.AjaxResponse();
			ajaxResponse.parseXmlResponse(reqTransport.responseXML);			
	        if (ajaxResponse.getStatusCode() != 200)
	        {
		        btnSave.disabled=false;
		        document.body.style.cursor="default";
	        }
	        else
	        {
	            var oResponseBody = ajaxResponse.getResponseBody();
		        var statusNode = oResponseBody.selectSingleNode("Status");
		        var isSaved=statusNode.attributes.getNamedItem("value").value;
		        if(isSaved!=null && isSaved=="True")
		        {
		            var redirectUrl=statusNode.selectSingleNode("Redirect");
		            var url =redirectUrl.attributes.getNamedItem("url").value;
		            if(url!=null && url!="")
		            {
		                window.location=url;
		            }
		        }
		        else
		        {
		            var errorMessageNode=statusNode.selectSingleNode("ErrorMessage");
		            var errorMessage="";
		            if(errorMessageNode != null && errorMessageNode != undefined)
		                errorMessage = errorMessageNode.attributes.getNamedItem("message").value;
		                
		            DisplayErrorMessage(errorMessage);
		            //Set the address validation counter increment here
		            var counterNode=statusNode.selectSingleNode("InvalidAddr");
		            var counter=counterNode.attributes.getNamedItem("counter").value;
		            setCounterValue(counter);
		            var questionDivNode=statusNode.selectSingleNode("QuestionDiv");
		            var isHidden=questionDivNode.attributes.getNamedItem("isHidden").value;
		            
		            if(isHidden=="True")
		            {
		                //Hide Question Div
		                hideQuestionDiv(errorMessage);
		            }
		            else
		            {
		                //Show error message and reload captcha image
		                reloadCaptchaImage();
		            }
		            document.body.style.cursor="default";
		            btnSave.disabled=false;
		        }
		    }
		 }
		
	}
	reqObject.sendRequest(reqTransport.responseXML);
}
function urlDecode(strEncoded)
{
	var regEx = /\+/g;
	return unescape(String(strEncoded).replace(regEx, " "));
}

function saveAJAXPanelistAddress(profileObjects,btnSave,counter,panelistID,errorHandlerMethod,maxTryMethodName)
{
     //debugger;
    var requestContentDocument = UPSXmlEngine.prototype.createXmlDocument("xml", "");
    var obDocumentElement = requestContentDocument.createAjaxRequestNode("PAM_SavePanelistAddress");
    requestContentDocument.addDocumentElement(obDocumentElement);
    var varRequestbodyNode = requestContentDocument.createElementNode("requestBody","");
    requestContentDocument.addElementToRoot(varRequestbodyNode);

    //AddrValidCounter Node
    addNodeElementToRequestbodyNode(requestContentDocument,varRequestbodyNode,"AddrValidCounter","counter",counter);
    //PanelistID Node    
    addNodeElementToRequestbodyNode(requestContentDocument,varRequestbodyNode,"Panelist","panelistid",panelistID);
 
    for(var index=0;index<profileObjects.length;index++) 	
    {
        var varProfileObject = profileObjects[index];
        requestContentDocument.addElementToParent(varRequestbodyNode, varProfileObject.toXmlNode(requestContentDocument));
    }
    sendSavePanelistAddressXmlRequest("../AjaxDataPage.aspx", requestContentDocument,btnSave,errorHandlerMethod,maxTryMethodName);	
}

function sendSavePanelistAddressXmlRequest(strPage, obXmlContent,btnSave,errorHandlerMethod,maxTryMethodName)
{
    var reqTransport = g_oAjaxEngine.getXmlHTTPTransport();
	var reqObject = new UPSAjaxObject.AjaxRequest();
	reqObject.setRequestTransport(reqTransport);
	reqObject.setRequestTarget(strPage);
	reqObject.setTypePOST();
	reqObject.addRequestContent(obXmlContent.getDocument());
	reqObject.openRequest(true);
	reqTransport.onreadystatechange=function()
	{
		if (reqTransport.readyState==4)
		{
			var ajaxResponse = new UPSAjaxObject.AjaxResponse();
			ajaxResponse.parseXmlResponse(reqTransport.responseXML);			
	        if (ajaxResponse.getStatusCode() != 200)
	        {
		        btnSave.disabled=false;
		        document.body.style.cursor="default";
	        }
	        else
	        {
                var oResponseBody = ajaxResponse.getResponseBody();
		        var statusNode = oResponseBody.selectSingleNode("Status");
		        var isSaved=statusNode.attributes.getNamedItem("value").value;
		        if(isSaved!=null && isSaved=="True")
		        {
		            var redirectUrl=statusNode.selectSingleNode("Redirect");
		            var url =redirectUrl.attributes.getNamedItem("url").value;
		            if(url!=null && url!="")
		            {
		                window.location = url;
		            }
		        }
		        else
		        {
		            var errorMessageNode=statusNode.selectSingleNode("ErrorMessage");
		            var errorMessage= "";
		            if(errorMessageNode != null && errorMessageNode != undefined)
		                errorMessage=errorMessageNode.attributes.getNamedItem("message").value;
		            
		            var questionDivNode=statusNode.selectSingleNode("QuestionDiv");
		            var isHidden=questionDivNode.attributes.getNamedItem("isHidden").value;
		            if(isHidden == "True")
		            {
		                maxTryMethodName(errorMessage);
		            }
		            else
		            {
		                errorHandlerMethod(errorMessage);
		            }
		            
		            document.body.style.cursor="default";
		            btnSave.disabled=false;
		        }
		    }
		 }
		
	}
	reqObject.sendRequest(reqTransport.responseXML);
}

function saveAJAXPanelistBasicProfile(profileObjects,btnSave,counter,panelistID,maxTryMethodName)
{
     //debugger;
    var requestContentDocument = UPSXmlEngine.prototype.createXmlDocument("xml", "");
    var obDocumentElement = requestContentDocument.createAjaxRequestNode("PAM_SavePanelistBasicProfile");
    requestContentDocument.addDocumentElement(obDocumentElement);
    var varRequestbodyNode = requestContentDocument.createElementNode("requestBody","");
    requestContentDocument.addElementToRoot(varRequestbodyNode);
 
    //AddrValidCounter Node
    addNodeElementToRequestbodyNode(requestContentDocument,varRequestbodyNode,"AddrValidCounter","counter",counter);
    //Panelist Node    
    addNodeElementToRequestbodyNode(requestContentDocument,varRequestbodyNode,"Panelist","panelistid",panelistID);
   
    for(var index=0;index<profileObjects.length;index++) 	
    {
        var varProfileObject = profileObjects[index];
        requestContentDocument.addElementToParent(varRequestbodyNode, varProfileObject.toXmlNode(requestContentDocument));
    }
    sendSaveBasicProfileXmlRequest("../AjaxDataPage.aspx", requestContentDocument,btnSave,maxTryMethodName);	
}
function sendSaveBasicProfileXmlRequest(strPage, obXmlContent,btnSave,maxTryMethodName)
{
    var reqTransport = g_oAjaxEngine.getXmlHTTPTransport();
	var reqObject = new UPSAjaxObject.AjaxRequest();
	reqObject.setRequestTransport(reqTransport);
	reqObject.setRequestTarget(strPage);
	reqObject.setTypePOST();
	reqObject.addRequestContent(obXmlContent.getDocument());
	reqObject.openRequest(true);
	reqTransport.onreadystatechange=function()
	{
		if (reqTransport.readyState==4)
		{
			var ajaxResponse = new UPSAjaxObject.AjaxResponse();
			ajaxResponse.parseXmlResponse(reqTransport.responseXML);
	        if (ajaxResponse.getStatusCode() != 200)
	        {
		        btnSave.disabled=false;
		        document.body.style.cursor="default";
	        }
	        else
	        {
                var oResponseBody = ajaxResponse.getResponseBody();
		        var statusNode = oResponseBody.selectSingleNode("Status");
		        var isSaved=statusNode.attributes.getNamedItem("value").value;
		        if(isSaved!=null && isSaved=="True")
		        {
		            var redirectUrl=statusNode.selectSingleNode("Redirect");
		            var url =redirectUrl.attributes.getNamedItem("url").value;
		            if(url!=null && url!="")
		            {
		                btnSave.disabled=true;
		                top.location=URLDecode(url);
		            }
		        }
		        else
		        {
		            var errorMessageNode=statusNode.selectSingleNode("ErrorMessage");
		            var errorMessage= "";
		            if(errorMessageNode != null && errorMessageNode != undefined)
		                errorMessage=errorMessageNode.attributes.getNamedItem("message").value;
		            
		            var questionDivNode=statusNode.selectSingleNode("QuestionDiv");
		            var isHidden=questionDivNode.attributes.getNamedItem("isHidden").value;
		            
		            if(isHidden == "True")
		            {
		                DisplayMaximumTryErrorMessage(errorMessage);
		            }
		            else
		            {
		                DisplayErrorMessage(errorMessage);
		            }
		            
		            document.body.style.cursor="default";
		            btnSave.disabled=false;
		        }
		    }
		 }
		
	}
	reqObject.sendRequest(reqTransport.responseXML);
}
function saveAJAXPanelistUserName(profileObjects,btnSave,panelistID,redirectHandlerMethod,errorHandlerMethod)
{
     //debugger;
    var requestContentDocument = UPSXmlEngine.prototype.createXmlDocument("xml", "");
    var obDocumentElement = requestContentDocument.createAjaxRequestNode("PAM_SavePanelistUserName");
    requestContentDocument.addDocumentElement(obDocumentElement);
    var varRequestbodyNode = requestContentDocument.createElementNode("requestBody","");
    requestContentDocument.addElementToRoot(varRequestbodyNode);

     //PanelistID Node    
    addNodeElementToRequestbodyNode(requestContentDocument,varRequestbodyNode,"Panelist","panelistid",panelistID);

    for(var index=0;index<profileObjects.length;index++) 	
    {
        var varProfileObject = profileObjects[index];
        requestContentDocument.addElementToParent(varRequestbodyNode, varProfileObject.toXmlNode(requestContentDocument));
    }
    sendSavePanelistUserNameXmlRequest("../AjaxDataPage.aspx", requestContentDocument,btnSave,redirectHandlerMethod,errorHandlerMethod);	
}

function sendSavePanelistUserNameXmlRequest(strPage, obXmlContent,btnSave,redirectHandlerMethod,errorHandlerMethod)
{
    var reqTransport = g_oAjaxEngine.getXmlHTTPTransport();
	var reqObject = new UPSAjaxObject.AjaxRequest();
	reqObject.setRequestTransport(reqTransport);
	reqObject.setRequestTarget(strPage);
	reqObject.setTypePOST();
	reqObject.addRequestContent(obXmlContent.getDocument());
	reqObject.openRequest(true);
	reqTransport.onreadystatechange=function()
	{
		if (reqTransport.readyState==4)
		{
			var ajaxResponse = new UPSAjaxObject.AjaxResponse();
			ajaxResponse.parseXmlResponse(reqTransport.responseXML);			
	        if (ajaxResponse.getStatusCode() != 200)
	        {
		        btnSave.disabled=false;
		        document.body.style.cursor="default";
	        }
	        else
	        {   
                var oResponseBody = ajaxResponse.getResponseBody();
		        var statusNode = oResponseBody.selectSingleNode("Status");
		        var isSaved=statusNode.attributes.getNamedItem("value").value;
		        if(isSaved!=null && isSaved=="True")
		        {
		            var redirectUrl=statusNode.selectSingleNode("Redirect");
		            var url =redirectUrl.attributes.getNamedItem("url").value;
	                redirectHandlerMethod(url);
		        }
		        else
		        {
		            var errorMessageNode=statusNode.selectSingleNode("ErrorMessage");
		            var errorMessage= "";
		            if(errorMessageNode != null && errorMessageNode != undefined)
		                errorMessage=errorMessageNode.attributes.getNamedItem("message").value;
		            
		            btnSave.disabled=false;
		            errorHandlerMethod(errorMessage);
		        }
		    }
		 }
		
	}
	reqObject.sendRequest(reqTransport.responseXML);
}
function URLDecode(encoded)
{
   // Replace + with ' '
   // Replace %xx with equivalent character
   // Put [ERROR] in output if %xx is invalid.
   var HEXCHARS = "0123456789ABCDEFabcdef"; 
   var plaintext = "";
   var i = 0;
   while (i < encoded.length) {
       var ch = encoded.charAt(i);
	   if (ch == "+") {
	       plaintext += " ";
		   i++;
	   } else if (ch == "%") {
			if (i < (encoded.length-2) 
					&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 
					&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
				plaintext += unescape( encoded.substr(i,3) );
				i += 3;
			} else {
				alert( 'Bad escape combination near ...' + encoded.substr(i) );
				plaintext += "%[ERROR]";
				i++;
			}
		} else {
		   plaintext += ch;
		   i++;
		}
	} // while
   return plaintext;
}

function addNodeElementToRequestbodyNode(requestContentDocument,varRequestbodyNode,elementName,attributeName,attributeValue)
{
    //Create node Node
    var nodeElement=requestContentDocument.createElementNode(elementName,"");
    requestContentDocument.addAttributeToNode(nodeElement, attributeName, attributeValue );
    requestContentDocument.addElementToParent(varRequestbodyNode,nodeElement);
}
// end ajax methods

// JScript File


