// vars PC (product code) and SID should be set by PHP
function escapeChars(s) {
   return escape(s);
}
function convertSpecialChars(str) {
   //alert('convertSpecialChars');
   var pat = /%\^/g;
   var rep = "&";
   var pat2 = /%\*/g;
   var rep2 = "#";
   var pat3 = /%\)/g;
   var rep3 = "\"";
   var pat4 = /<br \/>/g;
   var rep4 = "%0D";
   var pat5 = /%\3D/g;
   var rep5 = "=";
   if(str.match('%^') || str.match('%*')|| str.match('%)')) {
//      alert("Found old-style escaped char");
      return str.replace(pat,rep).replace(pat2,rep2).replace(pat3,rep3).replace(pat4,rep4).replace(pat5,rep5);
   } else return unescape(str);
}
function trimString(str) {
  return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}
function createVarString() {
   var retVal="";

   for (var i=0; i<document.forms.length; i++) {
      if(document.forms[i].name != "hiddenform" && document.forms[i].name != "visited") {
         var el = document.forms[i].elements;

         for (var elems=0; elems<document.forms[i].length;elems++) {
            if (document.forms[i].elements[elems].name != "") {
               if ( document.forms[i].elements[elems].type == "checkbox") {
                  retVal += document.forms[i].elements[elems].name + "=" +
                                       document.forms[i].elements[elems].checked + "&";
               } else if( document.forms[i].elements[elems].type == "radio") {
                  var radiogroup = el[el[elems].name];
                  for (var j=0; j<radiogroup.length; ++j) {
                     if(radiogroup[j].checked) {
                        retVal += el[elems].name + "=" + document.forms[i].elements[elems + j].value + "&";
                        elems = elems + radiogroup.length - 1;
                     }
                  }
               } else {
                  retVal += document.forms[i].elements[elems].name + "=" + escapeChars(document.forms[i].elements[elems].value) + "&";
               }
            }

         }
      }
   }
   return retVal;
} //function createVarString() 

function createSecureID(callback) {
	if(!SID) {
		SID = 1;
		var postData='PC=' + PC + '&data=' + encodeHTML(createVarString());
		var contractdetailsDiv=document.getElementById("contractdetails");
		httpRequest(postData, '/DataService/index.asmx/CreateSecureID', contractdetailsDiv, "Saving Secure ID...", callback, true);
	}
	else 
		callback();
}

function saveWorkingAnswers(callback) {
   if(SID && SID!='' && PC) {
		var postData='PC=' + PC + '&data=' + encodeHTML(createVarString());
		var contractdetailsDiv=document.getElementById("contractdetails");
		if(typeof(callback) != 'function') callback = false;
		httpRequest(postData,'/DataService/index.asmx/SaveWorkingAnswers',contractdetailsDiv,"Saving Answers...",callback,true);
   }
}
function saveCallback(req,statusInd,success) {
   var p=document.getElementById("contractdetails");
   if(p && statusInd) p.removeChild(statusInd);
   if(success) {
   } else {
   }
}
function loadCallback(req,statusInd,success) {
   var p=document.getElementById("contractdetails");
   if(p && statusInd) p.removeChild(statusInd);
   if(success) {
      if(req.responseText.length>0) {
         var xml=str2XML(req.responseText);
         var data=xml.getElementsByTagName("string")[0].firstChild;
         loadVSData(trimString(data));
      }
      divdisplay();
   } else {
      alert("We are sorry, there was a problem loading your information from our server.\nPlease try refreshing the page.");
   }
}
function loadImageCallback(req,statusInd,success) {
   var p=document.getElementById("contractdetails");
   if(p && statusInd) p.removeChild(statusInd);
   if(success) {
      if(req.responseText.length>0){
        alert(req.responseText);
      }
   } else {
      alert("load failure");
   }
}
function loadVSData(vs) {
      var vs_arr = vs.split("&");
      var tmpVarSplit;
      var formObject;
      for(var i=0;i<vs_arr.length;i++) {
         tmpVarSplit = vs_arr[i].split("=");
         formObject = document.forms[contractIdentifier].elements[tmpVarSplit[0]];
         if(formObject) {
            var fieldType;
            fieldType = formObject.type;
            if(!fieldType) {
               fieldType = formObject[0].type;
            }
            if(fieldType=="select-one") {
               for(var j=0;j<formObject.options.length;j++) {
                  if(formObject.options[j].value ==unescape(tmpVarSplit[1])) {
                     formObject.selectedIndex = j;
                     break;
                  }
               }
            } else if(fieldType=="checkbox") {
               if(tmpVarSplit[1]=="true") {
                  formObject.checked = true;
               } else {
                  formObject.checked = false;
               }
            } else if(fieldType=="radio") {
               for(var radInd=0;radInd<formObject.length;radInd++) {
                  if(formObject[radInd].value==tmpVarSplit[1])
                     formObject[radInd].checked = true;
                  else formObject[radInd].checked = false;
               }
            } else {
               // for some reason, tmpVarSplit[1]) could be null if(tmpVarSplit[1]==null) alert(tmpVarSplit[0]);
               formObject.value = unescape(convertSpecialChars(tmpVarSplit[1]));
            }
         }
      } //for(var i=0;i<vs_arr.length;i++)  
}

var status=false;
function LeftmenuToggleButton(shrinkName,expandName) {
   if(status) {
      status=false;
      getStyleObject(shrinkName).display = "block";
      getStyleObject(expandName).display = "none";
   } else {
      status=true;
      getStyleObject(shrinkName).display = "none";
      getStyleObject(expandName).display = "block";
   }
}
