function set_menu(menu_id){
	document.getElementById("menu").value=menu_id;
	document.getElementById("content_form").submit();
}

function set_language (lng_id){
	document.getElementById("lng").value=lng_id;
	document.getElementById("content_form").submit();
}

function menu_action(act){

	switch(act){

		case "add_menu":

			open_popup("add_menu_place");
		break;
		case "edit_menu":

			open_popup("edit_menu_place");
		break;
		case "delete_menu":

			change_menu(act, "delete selected menu")?document.getElementById("content_form").submit():"";
		break;
		case "logout":

			change_menu(act, "log out from administration site")?document.getElementById("content_form").submit():"";
		break;
	}
}

function change_menu(act,msg){

	if (confirm("You are about to " + msg)){
		document.getElementById("content_act").value = act;

		var treeObj;
		var selected;
		switch (act){

			case "add_menu":
				treeObj = document.getElementById("add_menu_place");
			break;
			case "edit_menu":
				treeObj = document.getElementById("edit_menu_place");
			break;
			case "delete_menu":
				return true;
			break;
			case "logout":
				return true;
			break;
		}
		return true;
	}
		else
		return false;
}

function openwether(source){

	a=window.open(source,'55','resizable=no,status=no,width=291,height=260,top=100,left=200');
}

function get_win_size(){

	var win_size = new Array(2);

	try{
		win_size[0] = document.body.clientWidth;
		win_size[1] = document.body.clientHeight;
		}catch(e){
			try{
				win_size[0] = document.body.clientWidth;
				win_size[1] = document.body.clientHeight;
			}catch(er){

			}
		}

	return win_size;
}

function manage_combos(display_status){

	var selBoxs_arr = document.getElementsByTagName("select");

	for (var i=0;i<selBoxs_arr.length;i++){
		if (selBoxs_arr[i].id != "add_wnd_menu_status" && selBoxs_arr[i].id != "edit_wnd_menu_status")
		selBoxs_arr[i].style.visibility = display_status;
	}
}

function open_popup(div_name){

	var scr_size = get_win_size();
	document.getElementById("back_fon").style.width = scr_size[0]+"px";
	document.getElementById("back_fon").style.height = scr_size[1]+"px";
	document.getElementById("back_fon").style.display = "block";
	document.getElementById(div_name).style.display = "block";
	return manage_combos("hidden");
}

function close_popup(div_name){

	document.getElementById("back_fon").style.display = "none";
	document.getElementById(div_name).style.display = "none";
	return manage_combos("visible");
}

//// ============================================ ////
///	This part is for advanced popup window moving	///

var mousex = 0;
var mousey = 0;
var grabx = 0;
var graby = 0;
var orix = 0;
var oriy = 0;
var elex = 0;
var eley = 0;

var dragobj = null;

	if (document.getElementById("add_menu_place")){
		window.onresize = redraw;
		window.onscroll = redraw;
	}

function redraw()
{
	var divobj;
	if (document.getElementById("back_fon").style.display != "" )
	{
	divobj = document.getElementById("back_fon");
	divobj.style.height = document.body.clientHeight+20+'px';
	divobj.style.width = document.body.clientWidth+'px';
	}
	var wndobj;
	///	Detect wich popup is opened	///
	if (document.getElementById("add_menu_place").style.display!='none')
	{
		wndobj = document.getElementById("add_menu_place");
		wndobj.style.left = document.body.clientWidth/2-wndobj.offsetWidth/2+'px';
		wndobj.style.top = document.documentElement.clientHeight/2+document.documentElement.scrollTop-wndobj.offsetHeight/2+'px';
	}
	else if(document.getElementById("edit_menu_place").style.display!='none'){
		wndobj = document.getElementById("edit_menu_place");
		wndobj.style.left = document.body.clientWidth/2-wndobj.offsetWidth/2+'px';
		wndobj.style.top = document.documentElement.clientHeight/2+document.documentElement.scrollTop-wndobj.offsetHeight/2+'px';
	}
}


function getMouseXY(e) // works on IE6,FF,Moz,Opera7
{
  if (!e) e = window.event; // works on IE, but not NS (we rely on NS passing us the event)

  if (e)
  {
    if (e.pageX || e.pageY)
    { // this doesn't work on IE6!! (works on FF,Moz,Opera7)
      mousex = e.pageX;
      mousey = e.pageY;
    }
    else if (e.clientX || e.clientY)
    { // works on IE6,FF,Moz,Opera7
      mousex = e.clientX + document.body.scrollLeft;
      mousey = e.clientY + document.body.scrollTop;
    }
  }
}

function grab(divobj,e)
{
  if (!e) e = window.event;
  dragobj = divobj;

  dragobj.style.zIndex = 110; // move it to the top

  document.onmousemove = drag;
  document.onmouseup = drop;

  getMouseXY(e);

  grabx = mousex;
  graby = mousey;

  elex = orix = dragobj.offsetLeft;
  eley = oriy = dragobj.offsetTop;

}

function drag(e) // parameter passing is important for NS family
{
  if (dragobj)
  {
    elex = orix + (mousex-grabx);
    eley = oriy + (mousey-graby);
    dragobj.style.position = "absolute";
    dragobj.style.left = (elex).toString(10) + 'px';
    dragobj.style.top  = (eley).toString(10) + 'px';
  }
  getMouseXY(e);
  return false; // in IE this prevents cascading of events, thus text selection is disabled
}

function drop()
{
  if (dragobj)
  {
    dragobj.style.zIndex = 110;
    dragobj = null;
  }
  getMouseXY();
  document.onmousemove = getMouseXY;
  document.onmouseup = null;
  document.onmousedown = null;   // re-enables text selection on NS
}

		function Get_Cookie(name) {
		   var start = document.cookie.indexOf(name+"=");
		   var len = start+name.length+1;
		   if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
		   if (start == -1) return null;
		   var end = document.cookie.indexOf(";",len);
		   if (end == -1) end = document.cookie.length;
		   return unescape(document.cookie.substring(len,end));
		}
		// This function has been slightly modified
		function Set_Cookie(name,value,expires,path,domain,secure) {
			expires = expires * 60*60*24*1000;
			var today = new Date();
			var expires_date = new Date( today.getTime() + (expires) );
		    var cookieString = name + "=" +escape(value) +
		       ( (expires) ? ";expires=" + expires_date.toGMTString() : "") +
		       ( (path) ? ";path=" + path : "") +
		       ( (domain) ? ";domain=" + domain : "") +
		       ( (secure) ? ";secure" : "");
		    document.cookie = cookieString;
		}

		function expandAll()
		{
			var treeObj = document.getElementById('add_menu_place');
			if(document.getElementById('edit_menu_place').style.display=="block")
				treeObj = document.getElementById('edit_menu_place');
			var images = treeObj.getElementsByTagName('IMG');
			for(var no=0;no<images.length;no++){
				if(images[no].className=='tree_plusminus' && images[no].src.indexOf(plusNode)>=0)expandNode(images[no]);
			}
		}
		function collapseAll()
		{
			var treeObj = document.getElementById('add_menu_place');
			if(document.getElementById('edit_menu_place').style.display=="block")
				treeObj = document.getElementById('edit_menu_place');
			var images = treeObj.getElementsByTagName('IMG');
			for(var no=0;no<images.length;no++){
				if(images[no].className=='tree_plusminus' && images[no].src.indexOf(minusNode)>=0)expandNode(images[no]);
			}
		}


		function expandNode(inputNode, nameOfCookie, initExpandedNodes)
		{
			var plusNode = '././images/treeElement_plus.gif';
			var minusNode = './images/treeElement_minus.gif';
			if(initExpandedNodes.length==0)initExpandedNodes=',';

		//	if(!inputNode)inputNode = this;
		//	if(inputNode.tagName.toLowerCase()!='img')
		//	inputNode = inputNode.parentNode.getElementsByTagName('IMG')[0];

			var inputId = inputNode.id.replace(/[^\d]/g,'');
			var parentUl = inputNode.parentNode;
			var subUl = parentUl.getElementsByTagName('UL');

			if(subUl.length==0)return;
			if(subUl[0].style.display=='' || subUl[0].style.display=='none'){
				subUl[0].style.display = 'block';
				inputNode.src = minusNode;
				initExpandedNodes = initExpandedNodes.replace(',' + inputId + ',',',');
				initExpandedNodes = initExpandedNodes + inputId + ',';
			}else{
				subUl[0].style.display = '';
				inputNode.src = plusNode;
				initExpandedNodes = initExpandedNodes.replace(','+inputId + ',',',');
			}
			Set_Cookie(nameOfCookie,initExpandedNodes,60);

		}

		function selectNode(node_id, usage){

			/*
			var treeObj = document.getElementById('new_menu_place');
			if(document.getElementById('edit_menu_place').style.display=="block")
			*/	treeObj = document.getElementById(usage+'_menu_place');

			var links = treeObj.getElementsByTagName('A');
			for (var i=0;i<links.length;i++){
				links[i].className = 'tree_link';
			}
			document.getElementById(node_id).className = 'activeNodeLink';
			var id_arr = node_id.split("_");
			document.getElementById(usage+"_as_child")?document.getElementById(usage+"_as_child").disabled=false:"";
			document.getElementById(usage+"_selected_location").value = id_arr[3];
		}


///===================================UTF8 and URL encode decode================================///

var Url = {

	// public method for url encoding
	encode : function (string) {

		return escape(this._utf8_encode(string));
	},

	// public method for url decoding
	decode : function (string) {
		return this._utf8_decode(unescape(string));
	},

	// private method for UTF-8 encoding
	_utf8_encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";

		for (var n = 0; n < string.length; n++) {

			var c = string.charCodeAt(n);

			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
		}

		return utftext;
	},

	// private method for UTF-8 decoding
	_utf8_decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;

		while ( i < utftext.length ) {

			c = utftext.charCodeAt(i);

			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}
		}

		return string;
	}
}

// ================================== DATE ===============================================//
// <input value="__/__/____" maxlength="10" onkeydown="return date_keydown(this);" onkeyup="date_keyup(this);" dformat="MM/DD/YYYY" onfocus="date_focus(this);" onclick="date_click(this);" onblur="date_blur(this);" onkeypress="return date_keypress(this);" pos="0" msg="The date you typed incorrect."  startDate='01/01/1900' endDate='01/01/2079' style="width:70px;">
function date_click(obj)
{
	var r = obj.createTextRange();
	var x= window.event.offsetX;
	r.collapse(false);

	for(var i=9;i>=0;i--)
	{
		r.move("character",-1);
		if (i!=2 && i!=5 && r.offsetLeft<=x) break;
	}

	obj.pos = i;
	r.expand("character");
	r.select();
}

function date_focus(obj)
{

	var r = obj.createRange();
	r.collapse(true);
	obj.pos = 0;
	r.expand("character");
	r.select();

}

function date_keydown(obj)
{
	switch (event.keyCode)
	{
		case 9:	// TAB
			break;

		case 35:	// END
			obj.pos=9;
			break;

		case 36:	// HOME
			obj.pos=0;
			break;

		case 37:	// <-
			if (obj.pos<1) return false;
			obj.pos-=(obj.pos==3 || obj.pos==6)?2:1;
			break;

		case 39:	// ->
			if (obj.pos>8) return false;
			obj.pos+=(obj.pos==1 || obj.pos==4)?2:1;
			break;

		case 46:	// DEL
			obj.value = obj.value.substring(0,obj.pos)+"_"+obj.value.substring(obj.pos+1);
			if (obj.pos<9) obj.pos+=(obj.pos==1 || obj.pos==4)?2:1;
			return false;
			break;

		case 8:	// BACK
			obj.value = obj.value.substring(0,obj.pos)+"_"+obj.value.substring(obj.pos+1);
			if (obj.pos>0) obj.pos-=(obj.pos==3 || obj.pos==6)?2:1;
			return false;
			break;

		default:
			if (!((event.keyCode>47 && event.keyCode<58) || (event.keyCode>95 && event.keyCode<106))) return false;
	}

	return true;
}

function date_keypress(obj)
{
	if (!((event.keyCode>47 && event.keyCode<58) || (event.keyCode>95 && event.keyCode<106))) return false;
	date_keyup(obj);
	if (obj.pos<9) obj.pos+=(obj.pos==1 || obj.pos==4)?2:1;
}

function date_keyup(obj)
{
	var r = obj.createTextRange();
	r.collapse();
	r.move("character",obj.pos);
	r.expand("character");
	r.select();
}

function date_blur(obj)
{
	if (obj.value=="" || obj.value=="__/__/____") return true;

	var str = obj.value.replace(/_/g,"");
	if (obj.dformat=="MM/DD/YYYY")
	{
		var temp = new Date(str);
	}
	else
	{
		var t = str.split("/");
		var temp = new Date(t[1]+"/"+t[0]+"/"+t[2]);
	}

	if (isNaN(temp))
	{
		obj.value="__/__/____";
		alert(obj.msg);
		return false;
	}

	obj.value=DateToString(temp, obj.dformat);
	var tempCurrDate = new Date(obj.value);
	var tempStartDate = new Date(obj.startDate);
	var tempEndDate = new Date(obj.endDate);
	if (tempCurrDate < tempStartDate)
	{
		alert("The start date cannot be earlier than "+ obj.startDate);
		obj.value="__/__/____";
		obj.focus();
		return false;
	}
	else if(tempCurrDate > tempEndDate)
	{
		alert("The end date cannot be later than "+ obj.endDate);
		obj.value="__/__/____";
		obj.focus();
		return false;
	}
	return true;
}

function digit2(val)
{
	return (val<10)?('0'+val):val;
}

function DateToString(d, f)
{
	if(f=="MM/DD/YYYY") return digit2(d.getMonth()+1)+'/'+digit2(d.getDate())+'/'+((d.getFullYear()<1930)?d.getFullYear()+100:d.getFullYear());
	if(f=="DD/MM/YYYY") return digit2(d.getDate())+'/'+digit2(d.getMonth()+1)+'/'+((d.getFullYear()<1930)?d.getFullYear()+100:d.getFullYear());
}


// =========================== TIME =====================================//

function time_click(obj)
{
	var r = obj.createTextRange();
	var x= window.event.offsetX;
	r.collapse(false);

	for(var i=4;i>=0;i--)
	{
		r.move("character",-1);
		if (i!=2 && r.offsetLeft<=x) break;
	}

	obj.pos = i;
	r.expand("character");
	r.select();
}

function time_focus(obj)
{
	var r = obj.createTextRange();
	r.collapse(true);
	obj.pos = 0;
	r.expand("character");
	r.select();
}

function time_keydown(obj)
{
	switch (event.keyCode)
	{
		case 9:	// TAB
			break;

		case 35:	// END
			obj.pos=4;
			break;

		case 36:	// HOME
			obj.pos=0;
			break;

		case 37:	// <-
			if (obj.pos<1) return false;
			obj.pos-=(obj.pos==3)?2:1;
			break;

		case 39:	// ->
			if (obj.pos>3) return false;
			obj.pos+=(obj.pos==1)?2:1;
			break;

		case 46:	// DEL
			obj.value = obj.value.substring(0,obj.pos)+"_"+obj.value.substring(obj.pos+1);
			if (obj.pos<4) obj.pos+=(obj.pos==1)?2:1;
			return false;
			break;

		case 8:	// BACK
			obj.value = obj.value.substring(0,obj.pos)+"_"+obj.value.substring(obj.pos+1);
			if (obj.pos>0) obj.pos-=(obj.pos==3)?2:1;
			return false;
			break;

		default:
			if (!((event.keyCode>47 && event.keyCode<58) || (event.keyCode>95 && event.keyCode<106))) return false;
	}

	return true;
}

function time_keypress(obj)
{

	if (!((event.keyCode>47 && event.keyCode<58) || (event.keyCode>95 && event.keyCode<106))) return false;
	time_keyup(obj);
	if (obj.pos<4) obj.pos+=(obj.pos==1)?2:1;
}

function time_keyup(obj)
{
	var r = obj.createTextRange();
	r.collapse();
	r.move("character",obj.pos);
	r.expand("character");
	r.select();
}

function time_blur(obj)
{
	if (obj.value=="" || obj.value=="__:__") return true;

	var str = obj.value.replace(/_/g,"");
	var t = str.split(":");
	var val = parseInt(t[0],10)*60+parseInt(t[1],10);
	if (isNaN(val))
	{
		obj.value="__:__";
		alert(obj.msg);
		return false;
	}
	obj.value=MinToTime(val);
	return true;
}


function MinToTime(val)
{
	return digit2((Math.floor(val/60))%24)+':'+digit2(val%60);
}


////=======================CHECK PRESSED KEY======================////
function search_updown(e)
{
	var KeyID = (window.event) ? event.keyCode : e.keyCode;

   switch(KeyID)
   {
      case 38:
      	alert("Arrow Up");
   		return 0;
      break;
      case 40:
      	alert("Arrow Down");

      	return 0;
      break;
      case 13:
      	alert("Enter");
      	return 0;
      break;
      default:
      	return 1;
   }
}


////=======================AJAX OPERATIONS=======================////

	var xmlHttp = "";
	var div_name = "";


	function create_obj(){

	//For Microsoft browsers
	xmlHttp = false;

	try {
		xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e1) {
			try {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e2) {
				xmlHttp = false;
				}
	}

	//For other browsers
	if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
		 xmlHttp = new XMLHttpRequest();
			if (!xmlHttp) {
				alert("\nError initializing XMLHttpRequest object! \nYour browser has not AJAX support\n");
			}
		}
	}


	function get_select(id,lng,div,menu,e){

		if (div=="search_results"){
		// KeyCheck;

			if ((id.length)<3){
				document.getElementById(div).innerHTML = "";
				document.getElementById(div).style.display = "none";
				return false;
			}
			else{
				document.getElementById(div).style.display = "block";
				if (search_updown(e)==0)
					exit;

			}
		}

		document.getElementById(div).innerHTML = "<img src=\"../images/loader.gif\" width=\"16\" height=\"16\" />";

		create_obj();

		///////////// For Structure with NT Authentication ////////////////////
		var url;
		div_name = document.getElementById(div);
		if (menu || (div!="search_results"))
			url = "private/get_ajax.php"+"?id=" + id + "&lng=" + lng + "&div=" + div + "&menu=" + menu + "&uniq_number=" + Date();
		else
			url = "private/get_ajax.php"+"?id=" + Url.encode(id) + "&lng=" + lng + "&div=" + div + "&uniq_number=" + Date();
		xmlHttp.open('GET',url,true);
		xmlHttp.setRequestHeader("Cache-Control", "no-cache");
		xmlHttp.setRequestHeader("Pragma", "no-cache");
		xmlHttp.setRequestHeader("Expires", "-1");
		xmlHttp.onreadystatechange = get_ajax;
		xmlHttp.send(null);

		///////////// For Structure without NT Authentication ////////////////////
		/*
			div_name = document.getElementById("div_units");
			var url = "includes/get_units.php"+"dep=" + dep + "&lng=" + document.getElementById("lng").value;
			var params = "dep="+dep+"&lng="+document.getElementById("lng").value;
			xmlHttp.open('POST',url,true);
			xmlHttp.setRequestHeader("Cache-Control", "no-cache");
			xmlHttp.setRequestHeader("Content-type", "application/x-www-form-URLencoded");
			xmlHttp.setRequestHeader("Content-length", params.length);
			xmlHttp.setRequestHeader("Connection", "close");
			xmlHttp.onreadystatechange = units_combo;
			xmlHttp.send(params);
		*/
	}


	function get_ajax(){
		if (xmlHttp.readyState == 4) {
			if (xmlHttp.status == 200) {

				if (div_name.id == "search_results"){
					if (xmlHttp.responseText != 0){
						div_name.innerHTML = xmlHttp.responseText;
						div_name.style.display = "block";
					}else{
						div_name.innerHTML = "";
						div_name.style.display = "none";
					}
				}else if (div_name.id == "news_details"){
						(xmlHttp.responseText)?div_name.innerHTML = xmlHttp.responseText:'';
						var item_body_editor = new FCKeditor( "item_body","100%","200","Basic" ) ;
						item_body_editor.BasePath = "/private/";
						item_body_editor.ReplaceTextarea();
				}else
				(xmlHttp.responseText)?div_name.innerHTML = xmlHttp.responseText:'';

			}
		}
	}
