﻿// JScript File

Ajax = {
	supported: function() {
		return Ajax.make() != null;
	},

	make: function() {
		if (typeof (XMLHttpRequest) != 'undefined') {
			Ajax.make = function() { return new XMLHttpRequest() }
		} else {
			Ajax.make = function() { return new ActiveXObject('Msxml2.XMLHTTP'); }
			try {
				return Ajax.make();
			} catch (e) {
				Ajax.make = function() { return null; }
			}
		}

		return Ajax.make();
	},

	request: function(url, callback,failcallback,passback) {
		var x = Ajax.make();

		
			x.onreadystatechange = function() {
				if (x.readyState == 4 && callback != null)
					callback(x.responseText,passback);
				else if (failcallback != null)
					failcallback(passback);
			}

		x.open('GET', url, true);
		x.send(null);
	},
	
	requestSync: function (url) 
	{	
		var x = Ajax.make();
		x.open("GET", url, false);
		x.send(null);
		return x.responseText;
	},
	
	post: function (url, passData) 
	{
		var x = Ajax.make();
	  	x.open("POST", url, false);
		x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		x.send(passData);
		return x.responseText;
	}
	
}


function AjaxFailed(a)
{
	debugger;   
}    

function CallWS(Url,Method, paramArray, successFn, failFn)
{
  
  var paramList = '';
  if (paramArray.length > 1)
  {
	for (var i=0; i<paramArray.length; i+=2)
	{
	  if (paramList.length > 0) paramList += ',';
	  paramList += "'" + paramArray[i] + "':'" + paramArray[i+1] + "'";
	}
  }
    
  if(Url.substr( Url.length - 1) != "/" ) Url += '/';
  
  paramList = '{' + paramList + '}';
  //Call the page method
  $.ajax({
	  type: "POST",
	  url: Url + Method,
	  contentType: "application/json; charset=utf-8",
	  data: paramList,
	  dataType: "json",
	  success: successFn,
	  error: failFn==null?AjaxFailed:failFn 			  
  });
	
}