// JavaScript Document
jAjax={
	sendRequest:function(params)
	{
		var xmlhttp=false;
		
		if(window.XMLHttpRequest)
		{
			xmlhttp=new XMLHttpRequest;
		}
		else if(window.ActiveXObject)
		{
			var msxmls = new Array(
							'Msxml2.XMLHTTP.5.0',
							'Msxml2.XMLHTTP.4.0',
							'Msxml2.XMLHTTP.3.0',
							'Msxml2.XMLHTTP',
							'Microsoft.XMLHTTP');
			for(var i = 0; i < msxmls.length; i++)
			{
				try 
				{
					xmlhttp=new ActiveXObject(msxmls[i]);
				}
				catch (e)
				{
				}
			}
		}
		if(xmlhttp)
		{
			var queryStr='';
			
			if( typeof(params.data)=="string" )
			{
			  queryStr=params.data;
			}
			else if(typeof(params.data)=="object")
			{
			  queryStr=jAjax.encodeQueryStr(params.data);
			}
			
			var method=(typeof(params.method)=="string")?(params.method.toLowerCase()):('get');
			   
			var url=(typeof(params.url)=="string")?(params.url):(window.location.href);
			
			xmlhttp.onreadystatechange=function()
			{
				if(xmlhttp.readyState==4)
				{
					if(xmlhttp.status==200)
					{
						if(typeof(params.dataType)=='string')
						{
							var resp='';
							
							if(params.dataType=='xml')
							{
								resp=xmlhttp.responseXML;
							}
							else if(params.dataType=='html' || params.dataType=='text' )
							{
								resp=xmlhttp.responseText;
							}
							else if(params.dataType=='json')
							{
								resp=eval("("+xmlhttp.responseText+")");
							}
						}
						else
						{
							if(xmlhttp.getResponseHeader("content-type")=="text/xml")
							{
							  resp=xmlhttp.responseXML;
							}
							else
							{
							  resp=xmlhttp.responseText;
							}
						}
						if(typeof(params.callback)=='function')
						{
							params.callback(resp);
						}
					}
					else
					{
						/*alert(xmlhttp.status+' '+xmlhttp.statusText);*/
						xmlhttp.abort();
					}
				}
			};
			if(method=='get')
			{
				if(url.indexOf('?')>=0 )
				{
					url=url+'&'+queryStr;
				}
				else
				{
					url=url+'?'+queryStr;
				}
				xmlhttp.open(method,url,true);
				xmlhttp.setRequestHeader("Ajax-Request","true");
				xmlhttp.send(null);
			}
			else if(method=='post')
			{
				xmlhttp.open(method,url,true);
				xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
				xmlhttp.setRequestHeader("Content-length",queryStr.length);
				xmlhttp.setRequestHeader("Ajax-Request","true");
				xmlhttp.send(queryStr);
			}
		}
		else
		{
			alert("Your Browser does not supports Ajax");
		}
	},
	encodeQueryStr: function (trgtArr)
	{
	  var arr=new Array();
	  var j=0;
	  
	  for(i=0;i<(trgtArr.length-1); i=i+2)
	  {
		arr[j]=encodeURIComponent(trgtArr[i])+"="+encodeURIComponent(trgtArr[i+1]);
		j++;
	  }
	  querystr=arr.join('&');
	  return querystr;
	  
	},
	serializeForm: function(theform) {
		var els = theform.elements;
		var len = els.length;
		var queryString = "";
		this.addField = 
			function(name,value) { 
				if (queryString.length>0) { 
					queryString += "&";
				}
				queryString += encodeURIComponent(name) + "=" + encodeURIComponent(value);
			};
		for (var i=0; i<len; i++) {
			var el = els[i];
			if (!el.disabled) {
				switch(el.type) {
					case 'text': case 'password': case 'hidden': case 'textarea': 
						this.addField(el.name,el.value);
						break;
					case 'select-one':
						if (el.selectedIndex>=0) {
							this.addField(el.name,el.options[el.selectedIndex].value);
						}
						break;
					case 'select-multiple':
						for (var j=0; j<el.options.length; j++) {
							if (el.options[j].selected) {
								this.addField(el.name,el.options[j].value);
							}
						}
						break;
					case 'checkbox': case 'radio':
						if (el.checked) {
							this.addField(el.name,el.value);
						}
						break;
				}
			}
		}
		return queryString;
	},
	showLoadIndDiv:function(trgtId)
	{
		document.getElementById(trgtId).style.display='block';
	},
	hideLoadIndDiv:function(trgtId)
	{
		document.getElementById(trgtId).style.display='none';
	},
	applyTranparency:function(trgtId)
	{
		document.getElementById(trgtId).style.opacity='0.2';
		document.getElementById(trgtId).style.filter='alpha(opacity=20)';
	},
	removeTranparency:function(trgtId)
	{
		document.getElementById(trgtObj).style.opacity='1';
		document.getElementById(trgtObj).style.filter='alpha(opacity=100)';
	}
}
	

