function GetUrl(Params, Url){
	if(!Url){
		Url = String(document.location);
	}

	if(Url.indexOf('?') < 0){
		Url = Url + '?';
	}

	for(Name in Params){
		Url = Url.replace(new RegExp('(&|\\?)' + Name + '=.*?(&|$|#)'), '$1') + '&' + Name + '=' + Params[Name];
	}
	return Url.replace(/&{2,}/, '&');
}

function getUrlParam(paramName){
	var pair;
	var pairs = String(document.location).split('?', 2)[1].split('&');
	for(key in pairs){
		pair = pairs[key].split('=');
		if(pair[0] == paramName){
			return pair[1];
		}
	}
	return null;
}

//*
if(WindowOnLoad == null){
	var WindowOnLoad = {};
}

window.onload = function(e){
	for(Key in WindowOnLoad){
		try{
			WindowOnLoad[Key](e);
		}catch(e){
			alert(e.message);
		}
	}
}

var __AllCookies = GetAllCookies();

function GetAllCookies() {
	var Result = new Array();
	var Tmp = new Array();

	var Cookies = document.cookie.split(';');

	for ( var i = 0; i < Cookies.length; i++) {
		Tmp = Cookies[i].split('=');
		try {
			Result[Trim(Tmp[0])] = Trim(Tmp[1]);
		} catch (E) {
		}
	}
	return Result;
}

function GetCookie(VarName) {
	return __AllCookies[VarName];
}

// function SetCookie(Name, Value) {
// document.cookie = Name + '=' + Value;
// }


function SetCookie(Name, Value, Expires, Path, Domain, Secure){
	try{
		var Today = new Date();
		Today.setTime(Today.getTime());
		if(Expires){
			Expires = Expires * 1000 * 60 * 60 * 24;
		}
		var ExpiresDate = new Date(Today.getTime() + (Expires) );
		document.cookie = Name + "=" + escape( Value ) +
		( ( Expires ) ? ";expires=" + ExpiresDate.toGMTString() : "" ) +
		( ( Path ) ? ";path=" + Path : "" ) +
		( ( Domain ) ? ";domain=" + Domain : "" ) +
		( ( Secure ) ? ";secure" : "" )
	;
	}catch(e){
	// alert(e.message);
	}
// alert(Name + ' = ' + Value);
}


function Trim(str, chars) {
	return Ltrim(Rtrim(str, chars), chars);
}

function Ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function Rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function SetClassName(Obj, ClassName) {
	if(!Obj){
		return;
	}

	if (Obj.className == '' || Obj.className.indexOf(ClassName) < 0) {
		Obj.className += " " + ClassName;
		Obj.className = Trim(Obj.className);
	}
}

function UnsetClassName(Obj, ClassName) {
	if(!Obj){
		return;
	}

	Obj.className = Obj.className.replace(new RegExp("\\b" + ClassName + "\\b", "g"), "");
}

function HasClassName(Obj, ClassName) {
	if(!Obj){
		return false;
	}
	var N = ' ' + Obj.className + ' ';
	return N.indexOf(' ' + ClassName + ' ') > -1;
}


function ToggleClassName(Obj, ClassName){
	if(HasClassName(Obj, ClassName)){
		UnsetClassName(Obj, ClassName);
	}else{
		SetClassName(Obj, ClassName);
	}
}

function GetElementsByClassName(ParentEl, ClassName) {
	var Els = ParentEl.getElementsByTagName('*');
	var Result = [];
	for ( var i = 0; i < Els.length; i++) {
		if (Els[i].className.indexOf(ClassName) > -1) {
			Result[Result.length] = Els[i];
		}
	}
	return Result;
}

function GetElementsByAttr(ParentEl, AttrName, AttrValue) {
	var Els = ParentEl.getElementsByTagName('*');
	var Result = [];
	for ( var i = 0; i < Els.length; i++) {
		if (Els[i].getAttribute(AttrName) == AttrValue) {
			Result[Result.length] = Els[i];
		}
	}
	return Result;
}

function FilterElementsByText(Text, ParentId, ElementsTagName, FilteredClassName) {
	try{

		var Kids = document.getElementById(ParentId).getElementsByTagName(ElementsTagName);
		var FilterText = Text.toUpperCase();
		var KidText = "";
	
	
		for ( var i = 0; i < Kids.length; i++) {
			if (Kids[i].getAttribute("CompareText") == null) {
				Kids[i].setAttribute("OrigText", Kids[i].innerText);
			
				if(Kids[i].textContent){
					Kids[i].setAttribute("CompareText", Kids[i].textContent.toUpperCase());
				}else{
					Kids[i].setAttribute("CompareText", Kids[i].innerText.toUpperCase());
				}
			}

			if (FilterText != "" && Kids[i].getAttribute("CompareText").indexOf(FilterText) == -1) {
				SetClassName(Kids[i], FilteredClassName);
			} else {
				UnsetClassName(Kids[i], FilteredClassName);
			}
		}
	
	}catch(E){
	// alert(E.message);
		
	}
	
}

function GetEventCoords(e) {
	if (e.pageX || e.pageY) {
		posx = e.pageX;
		posy = e.pageY;
	} else if (e.clientX || e.clientY) {
		posx = e.clientX + document.body.scrollLeft
		+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
		+ document.documentElement.scrollTop;
	}
	return {
		'X':posx,
		'Y':posy
	};
}



function ShowTip(e, TipElId){
	var Pos = GetEventCoords(e);
	// alert(Pos.X + "," + Pos.Y);
	TipEl = document.getElementById(TipElId);
	TipEl.style.top = (Pos.Y + 15) + "px";
	TipEl.style.left = (Pos.X - 60) + "px";
	UnsetClassName(TipEl, "Hidden");
	if(document.body.clientWidth < (TipEl.offsetLeft + TipEl.offsetWidth)){
		TipEl.style.left = (document.body.clientWidth - TipEl.offsetWidth - 10) + "px";
	}
}

function HideTip(e, TipElId){
	SetClassName(document.getElementById(TipElId), "Hidden");
}

function CopyFormValues(Checkbox, SrcParentSelector, TargetParentSelector){
	if(Checkbox.checked){
		$(TargetParentSelector + " *[data-vu-copy_id]").map(function(){
			$(this).data("OldValue", $(this).val());
			var jSrcEl = $(SrcParentSelector + " *[data-vu-copy_id=" + $(this).attr("data-vu-copy_id") +"]");
			if(jSrcEl.length){
				$(this).val(jSrcEl.val());
			}
		});
	}else{
		$(TargetParentSelector + " *[data-vu-copy_id]").map(function(){
			$(this).val($(this).data("OldValue"));
		});
	}
	return false;
}

function LoadScript(Src){
	try{

		var e = document.createElement("script");
		e.src = Src;
		e.type="text/javascript";
		document.getElementsByTagName("head")[0].appendChild(e);
		document.getElementsByTagName("head")[0].removeChild(e);
	
	}catch(E){
	// alert(E.message);
	}
}


function GetDocHeight() {
	try{
		return Math.max(
			Math.max(document.body.scrollHeight, document.documentElement.scrollHeight),
			Math.max(document.body.offsetHeight, document.documentElement.offsetHeight),
			Math.max(document.body.clientHeight, document.documentElement.clientHeight)
			);
	}catch(e){
		alert(e.message);
	}
}

function GetDocWidth() {
	try{
		return Math.max(
			Math.max(document.body.scrollWidth, document.documentElement.scrollWidth),
			Math.max(document.body.offsetWidth, document.documentElement.offsetWidth),
			Math.max(document.body.clientWidth, document.documentElement.clientWidth)
			);
	}catch(e){
		alert(e.message);
	}	
}

function MoveSelectOptions(S, T){
	var Ops = [];
	for(var i = 0; i < S.options.length; i++){
		if(S.options[i].selected){
			T.options[T.options.length] = new Option(S[i].text, S[i].value);
			Ops.push(S[i].value);	
		}
	}
	T.setAttribute('ops', Ops);
	
	Ops = [];
	for(var i = S.options.length - 1; i >= 0; i--){
		if(S.options[i].selected){
			S.remove(i);
		}else{
			Ops.push(S[i].value);
		}
	}
	S.setAttribute('ops', Ops);

	return true;
}

function ResizeWindow(W,H){
	self.moveTo((screen.availWidth - W) / 2, (screen.availHeight - H) / 2);	
	self.resizeTo(W, H);
}

