﻿
// Trim() , Ltrim() , RTrim()
String.prototype.Trim = function() 
{ 
return this.replace(/(^\s*)|(\s*$)/g, ""); 
} 

String.prototype.LTrim = function() 
{ 
return this.replace(/(^\s*)/g, ""); 
} 

String.prototype.RTrim = function() 
{ 
return this.replace(/(\s*$)/g, ""); 
} 

// addEvent
function addEvent(obj,type,fn){
  if(obj.addEventListener){
    obj.addEventListener(type,fn,false);
  }
  else if(obj.attachEvent){
    obj.attachEvent("on"+type,fn);
  }
  else{
    obj["on" + type]=fn;
  }
}

// removeEvent
function removeEvent(obj,type,fn){
  if(obj.removeEventListener) obj.removeEventListener(type,fn,false);
  else if(obj.detachEvent){
    obj.detachEvent("on"+type,fn);
  }
  else{
    obj["on" + type]=null;
  }
} 

// assert the null value
function AssertNull(event, controlClientID, message)
{
    var control = document.getElementById(controlClientID);
    
    if(control != null && (control.value == null || control.value.Trim() == ""))
    {
        alert(message);
        if(window.event)
        {
            window.event.returnValue = false;
        }
        else if(event)
        {
            event.preventDefault();
        }
    }
}

//Ajax Start

function Ajax_GetXMLHttpRequest() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else {
		if (window.Ajax_XMLHttpRequestProgId) {
			return new ActiveXObject(window.Ajax_XMLHttpRequestProgId);
		} else {
			var progIds = ["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
			for (var i = 0; i < progIds.length; ++i) {
				var progId = progIds[i];
				try {
					var x = new ActiveXObject(progId);
					window.Ajax_XMLHttpRequestProgId = progId;
					return x;
				} catch (e) {
				}
			}
		}
	}
	return null;
}
function Ajax_CallBack(type, id, method, args, clientCallBack, debugRequestText, debugResponseText, debugErrors, includeControlValuesWithCallBack, url) {
	
	if (!url)
	{
		url = window.location.href;
		url = url.replace(/\#.*$/, '');
		if (url.indexOf('?') > -1)
			url += "&Ajax_CallBack=true";
		else
		{
			if (url.substr(url.length - 1, 1) == "/")
				url += "default.aspx";
				
			url += "?Ajax_CallBack=true";
		}
	}
	var x = Ajax_GetXMLHttpRequest();

	var result = null;
	if (!x) {
		result = { "value":null, "error": "NOXMLHTTP"};
		if (debugErrors) {
			alert("error: " + result.error);
		}
		if (clientCallBack) {
			clientCallBack(result);
		}
		return result;
	}

	x.open("POST", url, clientCallBack ? true : false);
	x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
	if (clientCallBack) {
		x.onreadystatechange = function() {
			var result = null;
		
			if (x.readyState != 4) {
				return;
			}
			
			if (debugResponseText) {
				alert(x.responseText);
			}
			
			try
			{
				var result = eval("(" + x.responseText + ")");
				if (debugErrors && result.error) {
					alert("error: " + result.error);
				}
			}
			catch (err)
			{
				if (window.confirm('The following error occured while processing an AJAX request: ' + err.message + '\n\nWould you like to see the response?'))
				{
					var w = window.open();
					w.document.open('text/plain');
					w.document.write(x.responseText);
					w.document.close();
				}
				
				result = new Object();
				result.error = 'An AJAX error occured.  The response is invalid.';
			}
			
			clientCallBack(result);			
		}
	}
	var encodedData = "Ajax_CallBackType=" + type;
	if (id) {
		encodedData += "&Ajax_CallBackId=" + id.split("$").join(":");
	}
	encodedData += "&Ajax_CallBackMethod=" + method;
	if (args) {
		for (var i in args) {
			encodedData += "&Ajax_CallBackArgument" + i + "=" + encodeURIComponent(args[i]);
		}
	}
	if (includeControlValuesWithCallBack && document.forms.length > 0) {
		var form = document.forms[0];
		for (var i = 0; i < form.length; ++i) {
			var element = form.elements[i];
			if (element.name) {
				var elementValue = null;
				if (element.nodeName == "INPUT") {
					var inputType = element.getAttribute("TYPE").toUpperCase();
					if (inputType == "TEXT" || inputType == "PASSWORD" || inputType == "HIdDEN") {
						elementValue = element.value;
					} else if (inputType == "CHECKBOX" || inputType == "RADIO") {
						if (element.checked) {
							elementValue = element.value;
						}
					}
				} else if (element.nodeName == "SELECT") {
					elementValue = element.value;
				} else if (element.nodeName == "TEXTAREA") {
					elementValue = element.value;
				}
				if (elementValue) {
					encodedData += "&" + element.name + "=" + encodeURIComponent(elementValue);
				}
			}
		}
	}
	if (debugRequestText) {
		alert(encodedData);
	}
	x.send(encodedData);
	if (!clientCallBack) {
		if (debugResponseText) {
			alert(x.responseText);
		}
		result = eval("(" + x.responseText + ")");
		if (debugErrors && result.error) {
			alert("error: " + result.error);
		}
	}
	delete x;
	return result;
}

//Ajax End


function ExpanderPanel_Toggle( targetID, buttonID, trackerID, buttonOpenedClassName, buttonClosedClassName ) 
{
	if ( document.getElementById ) {
		var target = document.getElementById( targetID );
		if ( target != null ) {
			target.style.display = ( target.style.display != "none" ) ? "none" : "";
		}
		if ( buttonClosedClassName != "" ) {
			var imageButton = document.getElementById( buttonID );
			if ( imageButton != null ) {
				imageButton.className = ( target.style.display != "none" ) ? buttonClosedClassName : buttonOpenedClassName;
			}
		}
		var tracker = document.getElementById( trackerID );
		if ( tracker != null ) {
			tracker.value = ( target.style.display == "none" ) ? "True" : "False";
		}
		return false;
	}
	return true;
}

function imgresize(id,num1,num2)
{	
	var aa=document.getElementById(id);
	if(aa.width>num1||aa.height>num2){
		if(aa.width*num2/aa.height>=num1){aa.height=aa.height*num1/aa.width;aa.width=num1; }
		if(aa.height*num1/aa.width>=num2){ aa.width=aa.width*num2/aa.height;aa.height=num2;}
	}
}