// common.js

// popup
$().ready(function() {
    if (Sys != undefined)
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);

    function EndRequestHandler(sender, args) {
        if ($('#comparepopup')[0] != undefined)
        {
            $('#comparepopup').jqm({ modal: true });
            $('#comparepopup').jqmShow();
        }
    }
    
    var prm = Sys.WebForms.PageRequestManager.getInstance();
	var postBackElement;
	
	prm.add_initializeRequest(InitializeRequest);
	prm.add_endRequest(EndRequest);

	var previousAction = "";
	function InitializeRequest(sender, args) 
	{
		previousAction = theForm.action;
		postBackElement = args.get_postBackElement(); 
	}
	
	function EndRequest(sender, args) 
	{
		theForm.action = previousAction;
		theForm._initialAction = theForm.action;
	}
});



// tabswticher(X, Y)
// tabsetX_buttonY
// tabsetX_divY
function tabswitcher(strTabSet, intTabID) {
	strButtons = 'tabset_' + strTabSet + '_button';
	strDivs = 'tabset_' + strTabSet + '_div';
	for (i = 1; i <= 10; i++) {
		try {
			var objTab =   document.getElementById(strButtons + i);
			var objLayer = document.getElementById(strDivs + i);
			
			if (i == intTabID) {
				objTab.className = 'on';
				objLayer.style.display = 'block';
			} else {
				objTab.className = '';
				objLayer.style.display = 'none';
			}
		} catch(e) { i = 100; }
	}
}

// function to turn a group of buttons on or off, similar to the tab script, but without the layer swap
function setClassOn(strButtons,intButtonID) {
	for (i = 1; i <= 10; i++) {
		try {
			var objTab = document.getElementById(strButtons + i);
			if (i == intButtonID) {
				objTab.className = 'on';
			} else {
				objTab.className = '';
			}
		} catch(e) { i = 100; }
	}
}

function getObj(name) {
    
	if (document.getElementById) {
		this.obj = document.getElementById(name);
		if (this.obj) this.style = document.getElementById(name).style;
	} else if (document.all) {
		this.obj = document.all[name];
		if (this.obj) this.style = document.all[name].style;
	} else if (document.layers) {
		if (document.layers[name]) {
			this.obj = document.layers[name];
			if (this.obj) this.style = document.layers[name];
	   } else {
			this.obj = eval("document.layers." + name + ".layers[name]");
			if (this.obj) this.style = eval("document.layers." + name + ".layers[name]");
	   }
	}

}

function toggleObj(name, blnshow) {
    var definedObj;
	if (document.getElementById) {
		definedObj = document.getElementById(name);
	} else if (document.all) {
		definedObj = document.all[name];
	} else if (document.layers) {
		if (document.layers[name]) {
			definedObj = document.layers[name];
	   } else {
			definedObj = eval("document.layers." + name + ".layers[name]");
	   }
	}
	
	if(definedObj)
	{
	    if(blnshow) {
                definedObj.style.display = "";
	    } else {
                definedObj.style.display = "none";
	    }
	}
}

function hideObjs(obj1, obj2) {
    var object1;
    var object2;
	if (document.getElementById) {
		object1 = document.getElementById(obj1);
		object2 = document.getElementById(obj2);
	} else if (document.all) {
		object1 = document.all[obj1];
		object2 = document.all[obj2];
	} else if (document.layers) {
		if (document.layers[name]) {
			object1 = document.layers[obj1];
			object2 = document.layers[obj2];
	   } else {
			definedObj = eval("document.layers." + name + ".layers[name]");
	   }
	}
	
	if(object1)
	{
	    object1.style.display = "none";
	}
	
	if(object2)
	{
	    object2.style.display = "none";
	}	
}


// get position scripts
function findPosLeft(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	} else if (obj.x) {
		curleft += obj.x;
	}
	return curleft;
}

function findPosTop(obj) {
	var curtop = 0;
	var printstring = '';
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	} else if (obj.y) {
		curtop += obj.y;
	}
	return curtop;
}
//end get position scripts


// AJAX FUNCTIONS
var Message;
var strMessage;

function loadXMLTarget(strURL, strTarget, strMessage, strTest) {
	if (strTest) { alert(strURL); }
	// This stops ajax caching
	if (strURL.indexOf("?") > -1) {
		strURL = strURL + "&" + Date();
	} else {
		strURL = strURL + "?cache=" + Date();
	}
	
	if (strTarget == "") {
		var strTarget = "content_body";
	} else {
		var strTarget = strTarget;
	}
	// branch for native XMLHttpRequest object
	if (window.XMLHttpRequest) {
		Message = new XMLHttpRequest();
		Message.onreadystatechange = function() {processTargetHTML(strTarget);};
		Message.open("GET", strURL, true);
		Message.send(null);
	// branch for IE/Windows ActiveX version
	} else if (window.ActiveXObject) {
		Message = new ActiveXObject("Microsoft.XMLHTTP");
		if (Message) {
			Message.onreadystatechange =function() {processTargetHTML(strTarget);};
			Message.open("GET", strURL, true);
			Message.send();
		}
	}
}


function processTargetHTML(strTarget) {
	//alert(strTarget);
	var obj = new getObj(strTarget);
    switch (Message.readyState) {
		case 1:
			//obj.obj.innerHTML = "<img src='/images/loading-anim.gif'>";
			break;
		case 4:
			// only if "OK"
			if (Message.status == 200) {
				obj.obj.innerHTML = Message.responseText;
			} else {
				obj.obj.innerHTML = Message.responseText;
				//alert("There was a problem retrieving the XML data:\n" + Message.statusText);
			}
		break;
    }
}
// END AJAX FUNCTIONS

function maxchars(evt, textarea, length, direction)
{
	
	var evekeyVal;
		

	if (evt) 
	{
		
		evekeyVal = (evt.which) ? evt.which : evt.keyCode;
		//alert(evekeyVal);
	}	

	if (textarea.value.length >= length && !(evekeyVal >= 37 && evekeyVal <= 40) && evekeyVal != 8)
	{
		//alert(evekeyVal);
		textarea.value = textarea.value.substring(0, length);
		return false;
	}
	else
	{
		if (direction == "up")
		{
			if (textarea.value.length >= length && !(evekeyVal >= 37 && evekeyVal <= 40) && evekeyVal != 8)
			{
				textarea.value = textarea.value.substring(0, length);
				return false;
			}
		}
		//alert(textarea.value.length);
		return true;
	}
}




