// JavaScript Document
function showHide(item, arrow, root) {
    var help = document.getElementById(item);
    var pijl = document.getElementById(arrow);
    if (help.style.display == 'block') {
        help.style.display = 'none';
        pijl.src = root + '/img/icons/16/arrow_open.gif';
    } else {
        help.style.display = 'block';
        pijl.src = root + '/img/icons/16/arrow_close.gif';
    }
}

var a=false;
var b=false;
var c=false;
var d=false;
var doc=document;
var current = null;
var dragTarget = null;
var dragState = false;
var waw = new Array ();
waw.io = new Array ();
waw.event = new Array ();
waw.system = new Array ();
waw.xml = new Array ();

dicoXmlRequest = function () {
	var xmlhttp=false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(e) {
			xmlhttp = false;
		}
	}
	if(!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

dicoRequest = function (params) {
	var xmlhttp=false;
	xmlhttp = dicoXmlRequest();
	var urlstr = "";
	var uri;
	if (params.data != undefined) {
		for (var i=0; i < params.data.length; i++) {
			urlstr += params.data[i]+"&";
		}
		uri = params.url+"?"+urlstr;
	}
	
	xmlhttp.onreadystatechange=function() {
		if(xmlhttp.readyState==4)	{
			params.callback ({type:"load",htmltext:xmlhttp.responseText});
		}
	}
	
	if (params.method == "GET") {
		if (params.data != undefined) {
			xmlhttp.open(params.method, params.url+"?"+urlstr, true);
		}
		else {
			xmlhttp.open(params.method, params.url, true);
		}
		xmlhttp.send(null);
	}
	else if (params.method == "POST"){
		xmlhttp.open(params.method, params.url, true);
		xmlhttp.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
		xmlhttp.setRequestHeader ("Content-length", urlstr.length);
		xmlhttp.setRequestHeader ("Connection", "close");
		xmlhttp.send (urlstr);
	}
}

waw.io.doRequest = function (params) {
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(e) {
			xmlhttp = false;
		}
	}
	if(!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}

	var urlstr = "";
	var uri;
	if (params.data != undefined) {
		for (var i=0; i < params.data.length; i++) {
			urlstr += params.data[i]+"&";
		}
		uri = params.url+"?"+urlstr;
	}
	else {
		uri = params.url;
		var uri_tmp = uri.split("?");
		if(uri_tmp.length > 0) {
		}
	}
	if (params.method == "POST"){
		xmlhttp.open(params.method, params.url, true);
		xmlhttp.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
		xmlhttp.setRequestHeader ("Content-length", urlstr.length);
		xmlhttp.setRequestHeader ("Connection", "close");
		xmlhttp.send (urlstr);
	}	
	xmlhttp.onreadystatechange=function() {
		if(xmlhttp.readyState==4)	{
			switch(params.mime){
				default:
				case "text/html":
					params.callback ({type:"load",rawdata:xmlhttp.responseText });
					break;
					
				case "text/xml":
//					alert(xmlhttp.responseText);
					var msg = waw.xml.parseXml (xmlhttp.responseText);
					params.callback ({type:"load",rawdata:xmlhttp.responseText,xml:msg });
					break;
			}
		}
	}
	if (params.method == "GET") {
		if (params.data != undefined) {
			xmlhttp.open(params.method, params.url+"?"+urlstr, true);
		}
		else {
			xmlhttp.open(params.method, params.url, true);
		}
		xmlhttp.send(null);
	}	
}

waw.event.connect = function (source, type, funct) {
	switch (type.toString ().toLowerCase ()) {
		case "onclick":
			doc.getElementById (source).onclick = funct;
			break;

		case  "onfocus":
			doc.getElementById (source).onfocus = funct;
			break;

		case "onblur":
			doc.getElementById (source).onblur = funct;
			break;

		case "onkeypress":
			doc.getElementById (source).onkeypress = funct;
			break;

		case "onkeydown":
			doc.getElementById (source).onkeydown = funct;
			break;

		case "onkeyup":
			doc.getElementById (source).onkeyup = funct;
			break;

		case "onchange":
			doc.getElementById (source).onchange = funct;
			break;

		case "onmouseover":
			doc.getElementById (source).onmouseover = funct;
			break;

		case "onmouseout":
			doc.getElementById (source).onmouseout = funct;
			break;

	}
}

waw.system.getPos = function(input) {
	var x = 0;
	var y = 0;
	if(input.offsetParent) {
		for(var posX = 0, posY=0; input.offsetParent; input = input.offsetParent) {
			posX += input.offsetLeft;
			posY += input.offsetTop;
			x = posX;
			y = posY;
		}
	}
	var ret = {x:x, y:y};
	return ret;
}

waw.xml.parseXml = function (xml) {
	oData1 = xml.match(/(<data>)([\n\r\t\d\D\w\W\s\S]*)(<\/data>)/g);
	var d1 = RegExp.$2;
	oData2 = xml.match(/(<type>)([\d\w]*)(<\/type>)/g);
	var d2 = RegExp.$2;
	oData3 = xml.match(/(<error>)([\d\w]*)(<\/error>)/g);
	var d3 = RegExp.$2;
	oData5 = xml.match(/(<code>)([\n\r\t\d\D\w\W\s\S]*)(<\/code>)/g);
	var d5 = RegExp.$2;
	var data1 = d1.replace("<![CDATA[", "");
	var data2 = data1.replace("]]>", "");
	var code1 = d5.replace("<![CDATA[", "");
	var code2 = code1.replace("]]>", "");
	var msg = {data:data2,type:d2,error:d3,code:code2};
	return msg;
}

function hide(id){
    document.getElementById(id).style.display="none";
}

function show(id){
    document.getElementById(id).style.display="block";
}

allWhiteSpace = function (id){
	var el = document.getElementById(id).value.toString();
	var el2 = el.replace(/^\s+/g, "");
	if(el2.length == 0)
		return true;
	else
		return false;
}

function isInt(myNum) {
var myMod = myNum % 1;
	if (myMod == 0) {
		return true;
	} else {
		return false;
	}
}

// Default page object
var Page = {
	
	debug : false,
	
	url : "",
	pEvents  :  new Array(new Array('id', 'type', function() {alert('hello');})),
	
	doPost : function (arr){
		waw.io.doRequest({url: this.url,data:arr,callback: function(cb) { /* alert(cb.rawdata); */  eval(cb.xml.code);},load:false,method:"POST",mime:"text/xml"});
	},
	
	doRequest : function (arr){
		waw.io.doRequest({url: this.url,data:arr,callback: function(cb) { /*alert(cb.rawdata);*/ eval(cb.xml.code);},load:false,method:"GET",mime:"text/xml"});
	},
	
	remoteScript : function(url){
		var e = document.createElement("script");
		e.src = url;
		e.type="text/javascript";
		document.getElementsByTagName("head")[0].appendChild(e);
 	},
	
	connect : function (src, type, func) {
		this.pEvents.push (new Array(src, type, func));
		var functions = this.getFunctions(src, type);
		switch (type.toString ().toLowerCase ()) {
			case "onclick":
				document.getElementById (src).onclick = function(){  for(i=0; i < functions.length; i++) functions[i]();	};
				break;
			case  "onfocus":
				document.getElementById (src).onfocus = function(){  for(i=0; i < functions.length; i++) functions[i]();};
				break;
			case "onblur":
				document.getElementById (src).onblur = function(){  for(i=0; i < functions.length; i++) functions[i]();};
				break;
			case "onkeypress":
				document.getElementById (src).onkeypress = function(){  for(i=0; i < functions.length; i++) functions[i]();};
				break;
			case "onkeydown":
				document.getElementById (src).onkeydown = function(){  for(i=0; i < functions.length; i++) functions[i]();};
				break;
			case "onkeyup":
				document.getElementById (src).onkeyup = function(){  for(i=0; i < functions.length; i++) functions[i]();};
				break;
			case "onchange":
				document.getElementById (src).onchange = function(){  for(i=0; i < functions.length; i++) functions[i]();};
				break;
			case "onmouseover":
				document.getElementById (src).onmouseover = function(){  for(i=0; i < functions.length; i++) functions[i]();};
				break;
			case "onmouseout":
				document.getElementById (src).onmouseout = function(){  for(i=0; i < functions.length; i++) functions[i]();};
				break;
		}				
	},
	
	checkForm : function(id){
		var inputs = document.getElementById(id).getElementsByTagName('input');
		var state = true;
		for(i=0; i < inputs.length; i++){
			if(inputs[i].className == "text-error") {
				state = false;
			}
		}
		return state;		
	},
		
	getPosition : function (id) {
		var input = document.getElementById(id);
		var x = 0;
		var y = 0;
		if(input.offsetParent) {
			for(var posX = 0, posY=0; input.offsetParent; input = input.offsetParent) {
				posX += input.offsetLeft;
				posY += input.offsetTop;
				x = posX;
				y = posY;
			}
		}
		var ret = {x:x, y:y};
		return ret;
	},
	
	getFunctions : function(id, type){
		var func = new Array();
		for(i=0; i < this.pEvents.length; i++) {
			if( this.pEvents[i][0]  == id && this.pEvents[i][1]  == type){
				func.push (this.pEvents[i][2]);
			}
		}
		return  func;		
	},
	
	getSelectedValue : function(id){
		var v = document.getElementById(id)[document.getElementById(id).selectedIndex].value;
		return v;
	},
	
	getForm : function(id){
		var data = "";
		var inputs = document.getElementById(id).getElementsByTagName('input');	
		var selects = document.getElementById(id).getElementsByTagName('select');	
		var ta = document.getElementById(id).getElementsByTagName('textarea');	
		for(i=0; i < inputs.length; i++){
			switch(inputs[i].type){
				case "hidden":
				case "text":
					if(inputs[i].name.length > 0) data += inputs[i].name + "=" + inputs[i].value + "&";
					else alert("no name defined");
					break;
				case "checkbox":
					if(inputs[i].name.length > 0) data += inputs[i].name + "=" + (inputs[i].checked ? 1 : 0) + "&";
					else alert("no name defined");
					break;
				
				case "radio":
					if(inputs[i].name.length > 0) {
						if(inputs[i].checked){
							data += inputs[i].name + "=" + inputs[i].value + "&";
						}
					}
					else alert("no name defined");
					break;
			}
		}
		for(i=0; i < selects.length; i++){
			if(selects[i].name.length > 0) data +=  selects[i].name + "=" +  selects[i][selects[i].selectedIndex].value+ "&";
			else alert("no name defined");
		}
		for(i=0; i < ta.length; i++){
			if(ta[i].name.length > 0) data +=  ta[i].name + "=" +  ta[i].value+ "&";
			else alert("no name defined");
		}
		return data;	
	},
	
	toggleCurrent : function (row) {
		if(current) current.className = current.className.replace(/\bactive\b/g, ' ');
		(current = row).className += ' active';
	},
	
	toggleTarget : function toggleTarget(row) {
		if(dragTarget) dragTarget.className = dragTarget.className.replace(/\btarget\b/g, ' ');
		dragTarget = row;
		if(row) row.className += ' target';
	},
	
	cancelEvent : function (e) {
		try {
			e.preventDefault();
			e.stopPropagation();
		} catch (exception) {
			e.returnValue = false;
		}	return false;
	},
	
	getTableRow : function (e) {
		var target = e.target;
			if(target.nodeName != "TH"){
			while(target && !/^tr$/i.test(target.nodeName)) {
				target = target.parentNode;
			}	return target;
		}
		else return null;
	},
	
	highLightBorder : function (id, isH){
		try{
			if(isH){
				document.getElementById(id).className = "text-error";
			}
			else {
				document.getElementById(id).className = "";
			}
			
		} catch(e){}
	}
}

function loadSortList(id){
	Page.url = "content.php";
	Page.doRequest(Array('id='+id, 'action=loadmenu_items'));
}

function loadSortListMain(id){
	Page.url = "content.php";
	Page.doRequest(Array('id='+id, 'action=loadmenu_itemsmain'));
}

function toggle(id){
	if(document.getElementById(id).style.display == 'block'){
		document.getElementById(id).style.display = 'none';
	}
	else {
		document.getElementById(id).style.display = 'block';
	}
}

function setInput(id, val, src){
	document.getElementById(id).value = val;
	if(src.length > 0) hide(src);
}


