﻿// JScript File
// --- AJAX request ---------------------------------------------------------------------------------------
// transfer data between server and client using AJAX technology

// ---- requestType: --------------------------------------------------------------------------------------
// 1: getFlvUrlVideao
// -------------------------------------------------------------------------------------------------------

var http_request = false;
function makePOSTRequest(url, parameters, fnName, bIsSync)
{
  
  http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
     http_request = new XMLHttpRequest();
     if (http_request.overrideMimeType) {
        http_request.overrideMimeType('text/xml');
     }
  } else if (window.ActiveXObject) { // IE
     try {
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
        try {
           http_request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
     }
  }
  if (!http_request) {
     alert('Cannot create XMLHTTP instance');
     return false;
  }
  
  http_request.onreadystatechange = fnName;
  
  //run ajax base on ansynchronous mode
  try {
	  if(bIsSync)
	    http_request.open('POST', url, true);
	  else
	    http_request.open('POST', url, false);  
	  //http_request.setRequestHeader("Content-Type", "text/xml;charset=utf-8");
	  //http_request.setRequestHeader("Content-length", parameters.length);
	  http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	  http_request.send(parameters);
  } 
  catch (e) {
	alert(e);
  }
}

function makeGETRequest(url, parameters, fnName, bIsSync)
{
  http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
     http_request = new XMLHttpRequest();
     if (http_request.overrideMimeType) {
        http_request.overrideMimeType('text/xml');
     }
  } else if (window.ActiveXObject) { // IE
     try {
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
        try {
           http_request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
     }
  }
  if (!http_request) {
     alert('Cannot create XMLHTTP instance');
     return false;
  }
  
  http_request.onreadystatechange = fnName;
  url += parameters;
  //run ajax base on ansynchronous mode
  if(bIsSync)
    http_request.open('GET', url, true);
  else
    http_request.open('GET', url, false);  
  http_request.setRequestHeader("Content-Type", "text/xml;charset=utf-8");
  http_request.setRequestHeader("Content-length", parameters.length);
  
  http_request.send(null); 	
  
}
//GetValueFromXmlContent
function fnGetValueFromXmlContent( sVar, strFormat) 
{
	var xmlDoc;
	var arr;
	try //Internet Explorer
	{
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async = false;
		xmlDoc.loadXML(sVar);
			arr = xmlDoc.getElementsByTagName(strFormat);
		if (arr.length > 0)
			return arr[0].text;	
		return "";		
	}
	catch(e)
	{
		try
		{
			var parser = new DOMParser();
			var xml=parser.parseFromString(sVar,"text/xml");
			arr = xml.getElementsByTagName(strFormat);
			if (arr.length > 0)
				return arr[0].textContent;	
			return "";			
		}	
		catch(e)
		{
			alert(e.message);
			return "";
		}
	}
}
	
// Get a collection of values from the ASP.Net session
function XMLToDict(xmlPayload)
{
	// read named pairs into dictionary object
	var dctSession = new ActiveXObject("Scripting.Dictionary");
	var matchArray = null;
	var re = new RegExp("<SessionItem ", "g");
	var nEquals = 0;
	var nSlash = 0;
	var sessionName = "";
	var sessionValue = "";

	// (interpreted ASP / RegExp is slow) 
	while ((matchArray = re.exec(xmlPayload)) != null)
	{
		nEquals = matchArray.lastIndex;
		while (xmlPayload.charAt(nEquals) != "=") { nEquals++; }
		nSlash = nEquals;
		while (xmlPayload.charAt(nSlash) != "/") { nSlash++; }

		sessionName = xmlPayload.substring(matchArray.lastIndex, nEquals);
		sessionValue = xmlPayload.substring(nEquals + 2, nSlash - 2);	
		dctSession.Item(sessionName) = sessionValue;
	}

	return(dctSession);
}


// Set a collection of values in the ASP.Net session
function DictToXML(SessionValues)
{
	var xmlSession = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>";
	xmlSession += "<Session GUID=\"";
	xmlSession += "";
	xmlSession += "\">";
	if (SessionValues != null)
	{
		var arraySession = (new VBArray(SessionValues.Keys())).toArray();
		var i;
		for (i in arraySession)
		{
			xmlSession += "<SessionItem " + arraySession[i] + "=\"" + SessionValues(arraySession[i]) + "\" />";
		}
	}
	xmlSession += "</Session>";
	return(xmlSession);
}

// replace safe &; display characters with unsafe characters
function transformEscapedCharacters(src)
{
var dest;
var re;

	dest=src;
	re = new RegExp("&lt;", "g");
	dest = dest.replace(re, "<");
	re = new RegExp("&gt;", "g");
	dest = dest.replace(re, ">");
	re = new RegExp("&amp;", "g");
	dest = dest.replace(re, "&");
	re = new RegExp("&copy;", "g");
	dest = dest.replace(re, "©");
	re = new RegExp("&nbsp;", "g");
	dest = dest.replace(re, " ");

	return(dest);
}

function buildSOAP(blnState) 
{
	var strSOAP = '<?xml version="1.0" encoding="UTF-8"?>';

	strSOAP += '<soap:Envelope ';
	strSOAP += ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ';
	strSOAP += ' xmlns:xsd="http://www.w3.org/2001/XMLSchema" ';
	strSOAP += ' xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> ';

	strSOAP += '<soap:Body>';

	if(blnState)
	{
		strSOAP += '<getState xmlns="http://www.cfdevs.com/NoEvil-2009/TestWS/">'; 
		strSOAP += '<state_abbreviation/>'; 
		strSOAP += '</getState>';
	}	
	else
	{
		strSOAP += '<getHelloWorldHasParams xmlns="http://www.cfdevs.com/NoEvil-2009/TestWS/">'; 
		strSOAP += '<strParam>' + 'aaaaaaaaaaaa' + '</strParam>'; 
		strSOAP += '</getHelloWorldHasParams>';
	}	

	strSOAP += '</soap:Body>';
	strSOAP += '</soap:Envelope>';

	return(strSOAP);
}

