﻿var xslStylesheet;
var xsltProcessor;
var myXMLHTTPRequest;
var myDOM;
var xmlDoc;
var xmlhttpreq;

function SendGetRequest(url)
{
	// code for Mozilla, etc.
	try
	{
		if (window.XMLHttpRequest)
		{		  
			xmlhttpreq = new XMLHttpRequest();
			xmlhttpreq.onreadystatechange = loadedGecko;
			xmlhttpreq.open("GET",url,true);
			xmlhttpreq.send(null);
		}
		// code for IE
		else 
		{
			if (window.ActiveXObject)
			{
				if( navigator.userAgent.toLowerCase().indexOf('msie 5') != -1 )
					xmlhttpreq = new ActiveXObject("Microsoft.XMLHTTP");
				else
					xmlhttpreq = new ActiveXObject("Msxml2.XMLHTTP.3.0");
				if (xmlhttpreq)
				{
					xmlhttpreq.onreadystatechange = loadedIE60;
					xmlhttpreq.open("GET",url,false);
					xmlhttpreq.send();
				}
			}
		}
	}
	catch(e)
	{
		alert(e);
	}
	return;
}

function SendPostRequest(url,param)
{
	try
	{
	// code for Mozilla, etc.
		if (window.XMLHttpRequest)
		{
			xmlhttpreq = new XMLHttpRequest();
			xmlhttpreq.onreadystatechange = loadedGecko;
			xmlhttpreq.open("POST",url, true);
			xmlhttpreq.setRequestHeader('Content-Type','application/x-www-form-urlencoded charset=windows-1251');
			xmlhttpreq.send(param);
		}
		// code for IE
		else 
		{
			if (window.ActiveXObject)
			{
				if( navigator.userAgent.toLowerCase().indexOf('msie 5') != -1 )
				{
				    //alert('IE5');
					xmlhttpreq = new ActiveXObject("Microsoft.XMLHTTP");
			  }
				else
			    xmlhttpreq = new ActiveXObject("Msxml2.XMLHTTP.3.0"); 
				if (xmlhttpreq)
				{
					xmlhttpreq.onreadystatechange = loadedIE60;
					xmlhttpreq.open("POST",url);
					xmlhttpreq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded charset=windows-1251');
					xmlhttpreq.send(param);
				}
			}
		}
	}
	catch(e)
	{
		alert(e.description);
	}

	return;
}



function loadedIE60()
{

    var oXSLT = null;
    xmlDoc = null;
	try
	{
	    
		// if xmlhttpreq shows "loaded"
		//alert(xmlhttpreq.readyState + "\n" +xmlhttpreq.status );
		if (xmlhttpreq.readyState==4)
		{
			if (xmlhttpreq.status==200)
			{
			 
			    if(xmlhttpreq.responseXML.xml !="")
			    {
			        xmlDoc = xmlhttpreq.responseXML;
				    var XSLTPath = "";
                    var nodeXSLTPI = xmlDoc.firstChild;
                    if("xml-stylesheet" != nodeXSLTPI.nodeName)
                        nodeXSLTPI = xmlDoc.firstChild.nextSibling;
                    var svalue = nodeXSLTPI.nodeValue;
                    svalue = svalue.substring(svalue.indexOf("href=\"") + 6);
                    XSLTPath = svalue.substring(0,svalue.indexOf("\""));
                    
                    var oXSLT = GetXSLT(XSLTPath);
                    
				    if("#alert"==idAJAXResult)
				    {
				        alert(xmlDoc.transformNode(oXSLT));
				    }else
				    {
				        var   strHTML = xmlDoc.transformNode(oXSLT);
				        //i = strHTML.indexOf("sdsdfsdfsdf");
				        document.getElementById(idAJAXResult).innerHTML ="";
        	            document.getElementById(idAJAXResult).innerHTML = strHTML;
        	            strHTML = null;
        	        }
        	    }else
        	    {
        	    	  document.body.style.cursor ="default";
        	        if("#alert"==idAJAXResult)
        	            alert(xmlhttpreq.responseText);
        	        else{
        	            document.getElementById(idAJAXResult).innerHTML = "<div>" + xmlhttpreq.responseText + "</div>";
		                    try{
                          if (document.getElementById(idAJAXHideElem) )
                          		document.getElementById(idAJAXHideElem).style.display = "none";
                        }catch(e){}  		      	            
        	        }    
        	    }
        	 
        	    //FunEvalScript("evalScript");       
        	    xmlhttpreq = null;
        	    
        	    
			}
			else
			{
				//document.getElementById(idAJAXResult).innerHTML = "<font color='red'>Problem retrieving data<br/>Error: " + xmlhttpreq.status +"</font>";
				alert("Problem retrieving data Error: " + xmlhttpreq.status);
			}
			
		}
	}
	catch(e)
	{
		//document.getElementById(idAJAXResult).innerHTML = e.description;
		alert(e + "\n" + e.description);
	}
	oXSLT=null;
	if(xmlDoc)
	    delete(xmlDoc);
	   
	xmlDoc = null;
	//FunEvalScript("evalScript");
}

function loadedGecko()
{
    var oXSLT = null; 
	try
	{
		// if xmlhttpreq shows "loaded"
		if (xmlhttpreq.readyState==4)
		{
		    // if "OK"
			if (xmlhttpreq.status==200)
			{
			
			   xmlDoc = xmlhttpreq.responseXML;    
		       if( null != xmlDoc )
		       //try
		       {
            	    //xmlDoc = xmlhttpreq.responseXML;    
                    var XSLTPath = "";
                    var nodeXSLTPI = xmlDoc.firstChild;
                    if(nodeXSLTPI)
                       if(nodeXSLTPI.nodeName)
                            if("xml-stylesheet" != nodeXSLTPI.nodeName)
                                nodeXSLTPI = xmlDoc.firstChild.nextSibling;
                    if(nodeXSLTPI && "xml-stylesheet" == nodeXSLTPI.nodeName)
                    {
                        var svalue = nodeXSLTPI.nodeValue;
                        svalue = svalue.substring(svalue.indexOf("href=\"") + 6);
                        XSLTPath = svalue.substring(0,svalue.indexOf("\""));	                        
	                    if(navigator.userAgent.toLowerCase().indexOf('msie 7') != -1 )
	                    {
			                    var oXSLT = GetXSLT(XSLTPath);
			                            
			                    if("#alert"==idAJAXResult)
							            {
							                alert(xmlDoc.transformNode(oXSLT));
							            }else
							            {
        	                    document.getElementById(idAJAXResult).innerHTML = xmlDoc.transformNode(oXSLT);
        	                 }
                            oXSLT = null; 
                        }
                        else
                        {
                            myXMLHTTPRequest = new XMLHttpRequest();
                          
                            myXMLHTTPRequest.open("GET", XSLTPath, false);
                            myXMLHTTPRequest.send(null);
                            xslStylesheet = myXMLHTTPRequest.responseXML;
                            
                            xsltProcessor = new XSLTProcessor();
                            xsltProcessor.importStylesheet(xslStylesheet);
                           
                            var fragment = xsltProcessor.transformToFragment(xmlDoc, document);
				       				      if("#alert"==idAJAXResult)
								            {
								                alert(fragment.innerHTML);
								            }
								            else
								            {
                                document.getElementById(idAJAXResult).innerHTML = "";
                                myDOM = fragment;
                                document.getElementById(idAJAXResult).appendChild(fragment);
                            }
                        }
                    }
                    else
                    {       
                    	//alert("set content-1");        
                    	document.body.style.cursor ="default";     	
			                if("#alert"==idAJAXResult)
							            alert(xmlhttpreq.responseText);
							        else{
                          document.getElementById(idAJAXResult).innerHTML = xmlhttpreq.responseText;
			                    try{
	                          if (document.getElementById(idAJAXHideElem) )
	                          		document.getElementById(idAJAXHideElem).style.display = "none";
	                        }catch(e){}  		

                      }    
                    }
                }else //catch(e)
                {           
                	  document.body.style.cursor ="default";      	
                    if("#alert"==idAJAXResult)
								        alert(xmlhttpreq.responseText);
								    else{
		                    document.getElementById(idAJAXResult).innerHTML = "<div width='50%'>"+xmlhttpreq.responseText + "</div>";
		                    try{
                          if (document.getElementById(idAJAXHideElem) )
                          		document.getElementById(idAJAXHideElem).style.display = "none";
                        }catch(e){}  		
		                }    
                }
                //FunEvalScript("evalScript");
			}
			else
			{
			   alert("Problem retrieving data \nError:" + xmlhttpreq.status );
			}
		} //if (xmlhttpreq.readyState==4)
	}
	catch(e)
	{
		    alert(e + "\n" + e.description+"\nAJAX");
	}
	
	oXSLT = null; 
		
}




function ObtainBody(sFormId)
{

	var requestBody='';
	try
	{
	    var FormId = document.getElementById(sFormId);
		var data = FormId.elements;
		for (var i=0; i<data.length; i++ ) 
		{
			Argvalue = data[i];
			svalue='';
			sname='';
			switch(Argvalue.type)
			{
				case "checkbox":
				case "radio":
					if(!(Argvalue.checked))
						break;
					sname  =Argvalue.name;
					svalue =Argvalue.value;
					break;
				default:
					if(Argvalue.name)
					{
						svalue = Argvalue.value;
						if(svalue != null && svalue !="" && svalue !="undefined")
						    sname  = Argvalue.name;
					}
			}   
			
			
			if(sname.length>0)
			{
			        svalueRes = encoding(svalue);
			     if((svalueRes.indexOf("%D0%")) > -1 || (svalueRes.indexOf("%D1%") > -1))
			        svalueRes = toWindows1251(svalue);
			     
				    requestBody += encoding(sname) + '=' + svalueRes +'&';
				
			}
		}   //for
		
	}
	catch(e)
	{
		alert(e);
	}
	requestBody = requestBody.substring(0, requestBody.length - 1);
	return requestBody;
}
		
		
function encoding(value) 
{
	if (typeof(encodeURIComponent) != 'undefined') 
		return encodeURIComponent(value);
	else 
		return escape(value);
}


function FunEvalScript(iddiv)
{
    
    try
    {
        
        var script = document.getElementById(iddiv);
        if(script)
        {
                if(script.value)
                    eval(script.value);
                 else
                eval(script.innerHTML);
                
                script.innerHTML="";
                script.parentNode.removeChild(script);
                script = null;
            }
    }
    catch(e)
    {
        alert(e+"\n"+e.description+"\nEvalScript");
    }
}




function SendPostRequest1(url,param)
{

    //alert(param);
	try
	{
	// code for Mozilla, etc.
		if (window.XMLHttpRequest)
		{			
			xmlhttpreq = new XMLHttpRequest();
			xmlhttpreq.onreadystatechange = loadedGecko;
			xmlhttpreq.open("POST",url, true);
		}
		// code for IE
		else 
		{
			if (window.ActiveXObject)
			{
				if(navigator.userAgent.toLowerCase().indexOf('msie 5') != -1 )
				{
				    alert('IE5');
					xmlhttpreq = new ActiveXObject("Microsoft.XMLHTTP");
			    }
				else
			    xmlhttpreq = new ActiveXObject("Msxml2.XMLHTTP.3.0"); 
				if (xmlhttpreq)
				{
					xmlhttpreq.onreadystatechange = loadedIE60;
					xmlhttpreq.open("POST",url,true);
				}
			}
		}
	    xmlhttpreq.setRequestHeader("Content-type", 'multipart/form-data; boundary="' + boundaryString +'"');
	    xmlhttpreq.setRequestHeader("Connection", "close");
	    xmlhttpreq.setRequestHeader("Content-length", param.length);
	    xmlhttpreq.send(param);

	}
	catch(e)
	{
		alert("-->"+e.description);
	}

	return;
}




var boundaryString ="---------------------------7d63191a4740108";
var boundary = '--' + boundaryString;
function ObtainBody1(sFormId)
{

	var requestBody='';
	requestbody = boundary  ;
	
	try
	{
	    var FormId = document.getElementById(sFormId);
		var data = FormId.elements;
		for (var i=0; i<data.length; i++ ) 
		{
			var Argvalue = data[i];
			var svalue='';
			var sname='';
			switch(Argvalue.type)
			{
				case "checkbox":
				case "radio":
					if(!(Argvalue.checked))
						break;
					sname  =Argvalue.name;
					svalue =Argvalue.value;
					break;
				default:
					if(Argvalue.name)
					{
						sname  = Argvalue.name;
						svalue = Argvalue.value;
					}
			}   
			
			//""
			if(sname.length>0)
			{
			
			    if(sname.toUpperCase().indexOf("BASE64") < -1)
			    { 
			        var svalueRes = encoding(svalue);
			         if((svalueRes.indexOf("%D0%")) > -1 || (svalueRes.indexOf("%D1%") > -1))
			            sname ="URLENCODE."+sname;
			        else
			            svalueRes = svalue;
			     }
			 else
			    svalueRes = svalue;
			    
		            requestbody +='\nContent-Disposition: form-data; name="'+sname +'"\n\n'+ svalueRes +'\n'+ boundary;	
			}
		}   //for
	

}
	catch(e)
	{
		alert(e);
	}
    requestbody +='--';
	return requestbody;
}




var dict = null;
function GetDict()
{

     if(null == dict)
     {
        dict = new ActiveXObject("MSXML2.DOMDocument");	
        dict.async=false;
        try
        {
            var xmlDictreq = null;
    	    if (window.XMLHttpRequest)
    		    xmlDictreq = new XMLHttpRequest();
    	    else
		        xmlDictreq =new ActiveXObject("Msxml2.XMLHTTP.3.0");
		    xmlDictreq.open("GET",strDict,false);
		    xmlDictreq.send(null);
		    var sxml= xmlDictreq.responseXML.xml;
		    //alert(sxml);
		    dict.loadXML(sxml);
        }
        catch(e)
        {
            alert(e.description);
            dict.load(strDict);
         }                               
     }     
    return dict;
}

var XSLTCache = new Array();
function GetXSLT(XSLTPath)
{

        try
        {
            if(null == XSLTCache[XSLTPath] || XSLTCache[XSLTPath]+"" == 'undefined')                 
            {
                var oTXSLT =new ActiveXObject("MSXML2.DOMDocument");	
                //oTXSLT = new ActiveXObject("MSXML2.FreeThreadedDOMDocument");
                oTXSLT.async = false;
                oTXSLT.load(XSLTPath);
                if(oTXSLT.documentElement.selectSingleNode("//xsl:variable[@name='dict']"))
                {
                    oTXSLT.getElementsByTagName("xsl:stylesheet").item(0).setAttribute("xmlns:msxsl","urn:schemas-microsoft-com:xslt");
                    oTXSLT.getElementsByTagName("xsl:stylesheet").item(0).setAttribute("exclude-result-prefixes","msxsl");
                    var tdict = GetDict();
                    oTXSLT.documentElement.selectSingleNode("//xsl:variable[@name='dict']").appendChild(tdict.documentElement.cloneNode(true));
                    oTXSLT.documentElement.selectSingleNode("//xsl:variable[@name='docDict']/@select").text="msxsl:node-set($dict)";
                }
                XSLTCache[XSLTPath] = oTXSLT;
                oTXSLT.async = false;
            }
        }
        catch(e)
        {
            alert(e.description);

       	    otXSLT =new ActiveXObject("MSXML2.DOMDocument");	
            otXSLT.async = false;
            otXSLT.load(XSLTPath);
            return otXSLT;
        }
            return XSLTCache[XSLTPath];
            




}



