var myDoc=null;
//====================== AJAX request-Response handler ===========
// e - form (this) or getElementById('form')
// target - placeholder to write to
// sPairsToSubmit - name/value pairs, including long HTML as value to be submited 
//lodaingTemplateId = lodaing template ID
// <div id="StyleSheetHolder"></div>


  function AttachCss(pathToCssFile){
	var linkObject = document.createElement("LINK");
		linkObject.rel = "stylesheet";
		linkObject.type = "text/css";
		linkObject.href = pathToCssFile;
		document.getElementById("StyleSheetHolder").appendChild(linkObject);
  }
var requests= new Array();

  function getResponseWithScript(target,sPairsToSubmit,lodaingTemplateId,script) { 

	  var e = document.getElementById("ssMainForm")	 
      knackerEvent(e);
      if(script!="")
		e.action=script;
      var sServerScript = e.action;
      requests[target] = new XMLHttpRequest();
      var xmlhttp =  requests[target];
      xmlhttp.open('POST', sServerScript, true);
      xmlhttp.onreadystatechange = function() {
          if (xmlhttp.readyState == 4) {
              if (xmlhttp.status == 200){
				ProcessContent(unescape(xmlhttp.responseText),target);				 
			  }else{			
				  e.submit();
			  }
          }
      }     
      xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      xmlhttp.send(sPairsToSubmit);
      if(lodaingTemplateId!="")
		document.getElementById(target).innerHTML = document.getElementById(lodaingTemplateId).innerHTML ;        
     
  }
 function getResponseWithScriptValue(target,sPairsToSubmit,lodaingTemplateId,script) { 	
	  var e = document.getElementById("ssMainForm")	 
      knackerEvent(e);
      if(script!="")
		e.action=script;
      var sServerScript = e.action;
      requests[target] = new XMLHttpRequest();
      var xmlhttp =  requests[target];
      xmlhttp.open('POST', sServerScript, true);
      xmlhttp.onreadystatechange = function() {
          if (xmlhttp.readyState == 4) {
              if (xmlhttp.status == 200){
				ProcessContentValue(unescape(xmlhttp.responseText),target);				 
			  }else{			
				  e.submit();
			  }
          }
      }     
      xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      xmlhttp.send(sPairsToSubmit);
      //document.getElementById(target).value = document.getElementById(lodaingTemplateId).innerHTML ;        
     
  }
  function getResponse(target,sPairsToSubmit,lodaingTemplateId) { 		
	  var e = document.getElementById("ssMainForm")	 
      knackerEvent(e);
      var sServerScript = e.action;
      var xmlhttp =  new XMLHttpRequest();
      xmlhttp.open('POST', sServerScript, true);
      xmlhttp.onreadystatechange = function() {
          if (xmlhttp.readyState == 4) {
              if (xmlhttp.status == 200){
				ProcessContent(unescape(xmlhttp.responseText),target);				 
			  }else{			
				  e.submit()
			  }
          }
      }      
      xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      xmlhttp.send(sPairsToSubmit);
      document.getElementById(target).innerHTML = document.getElementById(lodaingTemplateId).innerHTML ; 
      
  }  
  function ProcessContent(sContent,target)
  {
	var qzzv="",sProcessContent=sContent.toLowerCase();
	while(true)
	{
		var iStartIndex=sProcessContent.indexOf("<script");
		if(iStartIndex<0)
		{
			break;
		}else{
			var iStartScriptIndex=sProcessContent.indexOf(">",iStartIndex)+1
			var iEndScriptIndex=sProcessContent.indexOf("</scr"+"ipt>",iStartIndex);
			if(iEndScriptIndex>=iStartScriptIndex)
			{
				if(iEndScriptIndex==iStartScriptIndex)
				{
					var iStartFileNameIndex=sProcessContent.indexOf('src="',iStartIndex);
					if(iStartFileNameIndex>0)
					{
						iStartFileNameIndex+=5;
						var iEndFileNameIndex=sProcessContent.indexOf('"',iStartFileNameIndex)
						var sFileName=sContent.substring(iStartFileNameIndex,iEndFileNameIndex);
						if(sFileName.length>0)
						{
							var scriptElement=document.createElement("script");
							scriptElement.setAttribute("type","text/javascript");
							scriptElement.setAttribute("src",sFileName);
							document.getElementsByTagName("head").item(0).appendChild(scriptElement);
						};
					};
				};
				var iEndIndex=iEndScriptIndex+9;
				if(iEndScriptIndex>iStartScriptIndex)
				{
					var sScriptBlock=sContent.substring(iStartScriptIndex,iEndScriptIndex);
					qzzv+=sScriptBlock+"\n";
				};
				sContent=sContent.substring(0,iStartIndex)+sContent.substring(iEndIndex);
				sProcessContent=sProcessContent.substring(0,iStartIndex)+sProcessContent.substring(iEndIndex);
			};
		};
	};
	document.getElementById(target).innerHTML =sContent;	
	if(qzzv.length>0)
	{
		window.eval(qzzv);		
	};
	 myDoc = window.document;
}
  function ProcessContentValue(sContent,target)
  {
	var qzzv="",sProcessContent=sContent.toLowerCase();
	while(true)
	{
		var iStartIndex=sProcessContent.indexOf("<script");
		if(iStartIndex<0)
		{
			break;
		}else{
			var iStartScriptIndex=sProcessContent.indexOf(">",iStartIndex)+1
			var iEndScriptIndex=sProcessContent.indexOf("</scr"+"ipt>",iStartIndex);
			if(iEndScriptIndex>=iStartScriptIndex)
			{
				if(iEndScriptIndex==iStartScriptIndex)
				{
					var iStartFileNameIndex=sProcessContent.indexOf('src="',iStartIndex);
					if(iStartFileNameIndex>0)
					{
						iStartFileNameIndex+=5;
						var iEndFileNameIndex=sProcessContent.indexOf('"',iStartFileNameIndex)
						var sFileName=sContent.substring(iStartFileNameIndex,iEndFileNameIndex);
						if(sFileName.length>0)
						{
							var scriptElement=document.createElement("script");
							scriptElement.setAttribute("type","text/javascript");
							scriptElement.setAttribute("src",sFileName);
							document.getElementsByTagName("head").item(0).appendChild(scriptElement);
						};
					};
				};
				var iEndIndex=iEndScriptIndex+9;
				if(iEndScriptIndex>iStartScriptIndex)
				{
					var sScriptBlock=sContent.substring(iStartScriptIndex,iEndScriptIndex);
					qzzv+=sScriptBlock+"\n";
				};
				sContent=sContent.substring(0,iStartIndex)+sContent.substring(iEndIndex);
				sProcessContent=sProcessContent.substring(0,iStartIndex)+sProcessContent.substring(iEndIndex);
			};
		};
	};
	document.getElementById(target).value =sContent;	
	if(qzzv.length>0)
	{
		window.eval(qzzv);		
	};
	 myDoc = window.document;
}


//============= Example of HTML submission===============
	//escape(html) must be used
	function DoSubmitHTML(){
		var par = document.getElementById("MyCB") // form id
		sPairsToSubmit ="list=S|"+WebAppUserId+"|"+udid+"|"+ escape(document.getElementById("QAList").innerHTML) ;
		getResponse(par,'ssMain',sPairsToSubmit,'loading1');		
	}
