function resource()
{         
    var o = new Object();
    var isRequestCompleted = false;
    var xmlHTTPReq;
    this.XMLRequest = function( url, data, fnc, obj, async )
    {
         async = async == undefined ? true : async; 
         isRequestCompleted = false;
         if( resource.IE )
         {
	         xmlHTTPReq = new ActiveXObject( "Microsoft.XMLHTTP" );
	     }
         else
         {
	         xmlHTTPReq = new XMLHttpRequest();
	     }
         if( xmlHTTPReq )
         {
	         if( o ) 
	         {
	            o.xmlHTTPReq = xmlHTTPReq;
	         }
	         if( fnc ) 
	         {
	            xmlHTTPReq.onreadystatechange = fnc;
	         }
	         xmlHTTPReq.open( "POST", url, async );
	         xmlHTTPReq.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
	         xmlHTTPReq.send( data );
	         if( fnc && !async && !resource.IE )
	         {
		         fnc();
		     }
         } 	
         return xmlHTTPReq;
    };

    this.GetResponseText = function(errorMessage)
    {
        var response = "";
        if( o.xmlHTTPReq.readyState == 4 )
        {
            if( o.xmlHTTPReq.status == 200 )
            {
                response = o.xmlHTTPReq.responseText.decodeHTML();
                isRequestCompleted = true;
            }	
            else
            {
                if(errorMessage)
                {
                    response = errorMessage;
                }
                else
                {
                    response = "";
                }
            }
        }
        else
        {
            response = "";
        }
        return response;
    };

    this.GetXMLResponse = function(errorMessage, loadingMsg)
    {
        var response = "";
        if( o.xmlHTTPReq.readyState == 4 )
        {
            alert(o.xmlHTTPReq.readyState);
            if( o.xmlHTTPReq.status == 200 )
            {
                alert(o.xmlHTTPReq.readyState);
                response = o.xmlHTTPReq.responseText.decodeHTML();
            }
            else
            {
                alert(o.xmlHTTPReq.readyState);
                alert(errorMessage);
                if(errorMessage)
                {
                    response = errorMessage;
                }
                else
                {
                    response = "";
                }
            }
        }
        else
        {
            response = loadingMsg;
        }
        return response;
    }; 
};

if( window.ActiveXObject )
{
	resource.IE = true;
	resource.XMLHTTPReq = new ActiveXObject( "Microsoft.XMLHTTP" );
}
else
{
	resource.IE = false;
	resource.XMLHTTPReq = new XMLHttpRequest();
}

String.prototype.decodeHTML = function()
{
	var decodeHTML	= this;
	decodeHTML		= decodeHTML.replace( new RegExp( "&amp;", "g" ), "&" );
	decodeHTML		= decodeHTML.replace( new RegExp( "&quot;", "g" ), "\"" );
	decodeHTML		= decodeHTML.replace( new RegExp( "&lt;", "g" ), "<" );
	decodeHTML		= decodeHTML.replace( new RegExp( "&gt;", "g" ), ">" );
	decodeHTML		= decodeHTML.replace( new RegExp( "&apos;", "g" ), "'" );
	return decodeHTML;
};

function CallAjax(FnName,Params,objresource,FnCallBack)
{
    try
    {
        var strParamt = "";
        if(Params != undefined)
        {
            for(Param in Params)
            {
                strParamt = strParamt + "&" + Param + "=" + Params[Param];
            }
            strParamt = strParamt;
            strParamt=strParamt.substr(1,strParamt.length); 
        }  
        objresource.XMLRequest(servicePath+"/"+FnName+"",strParamt,FnCallBack,null,true);
    }
    catch(e)
    {
        alert(e.message);
    }
};
function getDataBetween (strInput,strBtwn)
{
    var lenBtwn = strBtwn.length+2;
    var strOut = strInput.substr(strInput.indexOf("<"+strBtwn+">")+lenBtwn,strInput.indexOf("</"+strBtwn+">")-strInput.indexOf("<"+strBtwn+">")-lenBtwn);
    return strOut;
};

