﻿// JScript File
function sendRequest(SQIN,SERVICEREQUEST)
{    
    
        var responded="";
        var req = new httpRequest(SERVICEREQUEST);
        req.setParameter('SQIN', SQIN); 
        req.request();          
        responded=req.getResponseText();
        return responded;
}

function sendAjxEmail(subject,details,sendTo,sendFrom)
{
//alert('called sendemail');
        var responded="";
        var req = new httpRequest("../ajxServices.asmx/SendGeneralEmail");
        req.setParameter('subject', subject);
        req.setParameter('details', details);
        req.setParameter('sendTo',sendTo);
        req.setParameter('sendFrm',sendFrom); 
        req.request();          
        responded=req.getResponseText();
        
        //alert(responded);
        return responded;
}


// Common HTTP Request 
httpRequest= function(_URL){

	this._async=false;
	this._requestMethod="POST";
	this._requestData="";
	this.getResponseText=function(){return this._http?this._http.responseText:""};
	this._responseXML=function(){return this._http ? this._http.responseXML : ""}
	this._username=null;
	this._password=null;

	this.setNamespace = function(name, value){
		this._namespaces += " xmlns:" + name + "=\"" + value + "\"";
	};

	this._namespaces = "";

	this.setParameter = function(name, value){
		this["_" + name + "Parameter"] = value;
		if ((this._parameters + " ").indexOf(" " + name + " ") < 0) {
			this._parameters += " " + name;
		}
	};

	this._parameters = "";

	this.setRequestHeader = function(name, value){
		this["_" + name + "Header"] = value;
		if ((this._headers + " ").indexOf(" " + name + " ") < 0) {
			this._headers += " " + name;
		}
	};

	this._headers = "";

	this.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	this.getResponseHeader = function(name){
		return this._http ? this._http.getResponseHeader(name) : "";
	};

	this.request = function(){
		var self = this;

		this._ready = false;

		var i, j, name, value, data = "", params = this._parameters.split(" ");
		for (i=1; i<params.length; i++){
			name = params[i];
			value = this["_" + name + "Parameter"];
			if (typeof value == "function") { value = value(); }
			if (typeof value == "object" && value.constructor == Array){
				for (j=0; j<value.length; j++){
					data += encodeURIComponent(name) + "=" + encodeURIComponent(value[j]) + "&";
				}
			}
			else {
				data += encodeURIComponent(name) + "=" + encodeURIComponent(value) + "&";
			}
		}

		var URL = _URL;

		if ((this._requestMethod != "POST") && data) {
			URL += "?" + data;
			data = null;
		}

		this._http=this.createXMLHttpRequest();
		this._http.open(this._requestMethod, URL, this._async, this._username, this._password);

		var headers = this._headers.split(" ");
		for (i=1; i<headers.length; i++){
			name = headers[i];
			value = this["_" + name + "Header"];
			if (typeof value == "function") { value = value(); }
			this._http.setRequestHeader(name, value);
		}

		this._http.send(data);

		if (this._async) {
			this.setTimeout(wait, 200);
		}
		else {
			returnResult();
		}

		function wait(){
			if (self._http.readyState == 4) {
				self._ready = true;
				returnResult();
			}
			else {
				self.setTimeout(wait, 200);
			}
		}

		function returnResult(){
			var xml = self._http.responseXML;

			if (xml && xml.firstChild && xml.hasChildNodes() &&
				  !(xml.firstChild &&
					xml.firstChild.firstChild &&
					xml.firstChild.firstChild.firstChild &&
					xml.firstChild.firstChild.firstChild.nodeName == "parsererror")) {
				self.response(xml);
				xml = null;
				return;
			}

			xml = null;
			self.response(self._http.responseText);
		}
	};

	this.response = function(result){
		if (this.$owner) {this.$owner.refresh()}
	};
		
	this.createXMLHttpRequest = function(){
			try {
				return new ActiveXObject("MSXML2.XMLHTTP");
			}
			catch(err){
			}
			try {
				return new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(err){
			}
			try {
				return new XMLHttpRequest;
			}
			catch(err){
			}
		}

};

