// for legacy purposes
if (!window.addEvent && window.ZD) {
    window.addEvent = function(el, trigger, handler) {
        ZD.on(el, trigger, function(e) {
            e = fixEvent(e);
            handler(e);
        });
    }
}

function initManager() {
    if (typeof initPopupCalendar != "undefined") {
        initPopupCalendar();
    }
	//initNavBar();
	rehighlightRows();
}

if (window.YAHOO) {
    YAHOO.util.Event.on(window, "load", initManager);
} else {
    window.onload = initManager;
}

function rehighlightRows() {
	var checkboxes = document.getElementsByTagName("input");
	for (var i = 0; i < checkboxes.length; i++) {
		if (checkboxes[i].type == "checkbox" && checkboxes[i].name.indexOf("action_") == 0) {
			actionFormToggleRow(checkboxes[i]);	
		}	
	}
}

function showLoading(msg) {
	msg = msg || "Loading...";
	var div = document.createElement("div");
	div.id = "loading";
	div.className = "loading";
	div.appendChild(document.createTextNode(msg));
	document.getElementById('page-title').appendChild(div);
}

function hideLoading() {
	var el = document.getElementById('loading');
	if (el && el.parentNode) {
	    el.parentNode.removeChild(el);
    }
}

wnd = null;
function popupImage(img_src, title, w, h) {
	if(wnd && !wnd.closed) {
		wnd.close()
		wnd=null;
	}
	wnd = open("about:blank","","height=" + (h+20) + ",width=" + (w+20) + ",toolbar=no,status=no,menubar=no,scrollbars=no,resizable=yes");
	with(wnd.document) {
		open();
		writeln('</he'+'ad><bo'+'dy marginheight="0" marginwidth="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#ffffff"><table cellpadding="5" cellspacing="0" width="100%" height="96%"><tr><td valign="middle" align="center"><img src="' + img_src + '" border=2></td></tr></table></bo'+'dy></ht'+'ml>');
		/* head and body tags have to be split 'cause google analytics is nonspecific */
		close();
	}
	wnd.focus();
}

function getCookie(name) { 
	var re = new RegExp(name + "=([^;]+)");
	var value = re.exec(document.cookie);
	return (value != null) ? unescape(value[1]) : null;
}

function setCookie(name, value) { 
	var today = new Date();
	var expiry = new Date(today.getTime() + 365 * 24 * 60 * 60 * 1000); // plus 365 days
	document.cookie=name + "=" + escape(value) + "; expires=" + expiry.toGMTString();
}

function popupHelp(title, msg) {
	popupWin = window.open('','windowname','scrollbars=no,width=330,height=100,resizable');
	popupWin.opener.top.name = "opener";
	popupWin.focus();
	popupWin.document.open();
	popupWin.document.write("<link rel='stylesheet' href='inserts/style.css'><div class='standard-text' style='margin: 15px'><strong>" + title + "</strong><br><br>" + msg + "</div>");
	popupWin.document.close();
}

function openWindow(earl, name, widgets) {	
	var url = earl;			
	popupWin = window.open (url,name,widgets);
	popupWin.opener.top.name="opener";
	popupWin.focus();
}

function actionFormGetTable(e) {
	var browseTable = e;
	while (browseTable.className != "browse-table" && browseTable.parentNode) {
		browseTable = browseTable.parentNode;
	}
	if (browseTable.className != "browse-table") return(false);
	else return(browseTable);
}

function actionFormChangeAll(e,checked) {
	var browseTable = actionFormGetTable(e);
	if (!browseTable) return;
	ZD.select("input",browseTable).forEach(function(ele) {
		if (ele.name.indexOf("action_") === 0) {
			ele.checked = checked;
			if (checked) actionFormHighlight(ele); 
			else actionFormUnhighlight(ele);
		}
	});
}

function actionFormClearAll() {
	actionFormChangeAll(this,false);
}

function actionFormCheckAll() {
	actionFormChangeAll(this,true);
}

function actionFormToggleRow(e) {
	if (e.checked) actionFormHighlight(e);
	else actionFormUnhighlight(e);
}

function actionFormHighlight(e) {
	var r = null;
	if (e.parentNode && e.parentNode.parentNode) {
		r = e.parentNode.parentNode;
	} else if (e.parentElement && e.parentElement.parentElement) {
		r = e.parentElement.parentElement;
	}
	if (r) {
		r.className += " selected";
		/*if (r.className == "row-light") {
			r.className = "row-light-h";
	    }
		if (r.className == "row-dark") {
			r.className = "row-dark-h";
		}*/
	}
}

function actionFormUnhighlight(e) {
	var r = null;
	if (e.parentNode && e.parentNode.parentNode) {
		r = e.parentNode.parentNode;
	} else if (e.parentElement && e.parentElement.parentElement) {
		r = e.parentElement.parentElement;
	}
	if (r) {
		r.className = r.className.replace(/ selected/, "");
		/*if (r.className == "row-light-h") {
			r.className = "row-light";
		}
		if (r.className == "row-dark-h") {
			r.className = "row-dark";
		}*/
	}
}

function all_oncheck()
{	
	listObj=document.fieldSelectForm.elements['listid[]'];
	if(listObj && document.fieldSelectForm.all_lists.checked==true)
		if(listObj.length)
		{
			for(i=0;i<listObj.length;i++)
				listObj[i].checked=false;
		}
}

function moveUp()
{
	selObj = document.fieldSelectForm.elements['displayFields[]']
	for (i=1; i<selObj.length;++i)
    {
		if(selObj.options[i].selected==true && selObj.options[i-1].selected==false) 
		{
			Entry0=new Option(selObj.options[i-1].text,selObj.options[i-1].value);			
			Entry1=new Option(selObj.options[i].text,selObj.options[i].value);			
			selObj.options[i]=Entry0;
			selObj.options[i-1]=Entry1;
			selObj.options[i].selected=false
			selObj.options[i-1].selected=true
		}
	}
}

function moveDown()
{
	selObj = document.fieldSelectForm.elements['displayFields[]']
	for (i=selObj.length-2; i>=0;i--)
    {
		if(selObj.options[i].selected==true && selObj.options[i+1].selected==false) 
		{
			Entry0=new Option(selObj.options[i+1].text,selObj.options[i+1].value);			
			Entry1=new Option(selObj.options[i].text,selObj.options[i].value);			
			selObj.options[i]=Entry0;
			selObj.options[i+1]=Entry1;
			selObj.options[i].selected=false
			selObj.options[i+1].selected=true
		}
	}
}

function removeField()
{
	selObj = document.fieldSelectForm.elements['displayFields[]']
	for (i=0; i<selObj.length;++i)
    {
		if(selObj.options[i].selected==true && selObj.options[i].value!='VendorNum' && selObj.options[i].value!='VendorName') 
		{
			newEntry=new Option(selObj.options[i].text,selObj.options[i].value);
			document.fieldSelectForm.allFields.options[document.fieldSelectForm.allFields.length]=newEntry;
			selObj.options[i]=null;
			--i;
		}
	}
}

function addField()
{
    for (i=0; i<document.fieldSelectForm.allFields.length;++i) {
        if (document.fieldSelectForm.allFields!=null && document.fieldSelectForm.allFields.options[i].selected==true) 
		{
			newEntry=new Option(document.fieldSelectForm.allFields.options[i].value);
            newEntry.value=document.fieldSelectForm.allFields.options[i].value;
            newEntry.text=document.fieldSelectForm.allFields.options[i].text;
			selObj = document.fieldSelectForm.elements['displayFields[]']
            selObj.options[selObj.length]=newEntry;
            document.fieldSelectForm.allFields.options[i]=null;
            --i;
        }
    }
}
function select_all_onSubmit()
{
	fields=document.fieldSelectForm.elements['displayFields[]']
	if(fields.length==0)
	{
		alert("Please select one or more fields from the list")
		return false
	}
	else	
		for (i=0; i<fields.length;++i)
		{
			fields.options[i].selected = true;
		}
	
	return true;
}

function varDump(v, depth, maxDepth) {
	var str = "";
	if (!depth)
		depth = "";
	if (typeof v == "object") {
		if (depth.length < maxDepth) {
			for (i in v) {
				str += depth + i + " = " + varDump(v[i], depth + " ", maxDepth);
			}
		}
	} else {
		str = depth + "{" + v + "}\n";
	}
	return str;
}

function fixEvent(event) {
	if (!event) {
		event = window.event;
	}
	if (!event) {
		return event;	
	}
	if (event.target) {
		if (event.target.nodeType == 3) {
			event.target = event.target.parentNode;
		}
	} else if (event.srcElement) {
		event.target = event.srcElement
	}
	return event;
}

function getElementPos(el){
	for (
		var lx = 0, ly = 0; el != null;
		lx += el.offsetLeft, ly += el.offsetTop, el = el.offsetParent
	);
	return {x:lx, y:ly}
}

function getElementClientPos(el) {
	var pos = getElementPos(el);
	var clientLeft = pos.x - document.body.scrollLeft;
	var clientTop = pos.y - document.body.scrollTop;
	return {x:clientLeft, y:clientTop}
}

function getInputByName(n) {
	var inputs = document.getElementsByTagName('input');
	for (i = 0; i < inputs.length; i++) {
		if (inputs[i].name == n) {
			return inputs[i];
		}
	}
	return null;
}

