var yii_menu_usepopups = true;
var yii_menu_registered = new Array();
var yii_menu_initialized = new Array();
var yii_menu_activemenus = new Array();
var yii_menu_currentactive = false;
var slidetimer = false;
var yii_menu_opensteps = 25;
var yii_menu_doslide = true;
var yii_menu_dofade = false; // can be very slow
var yii_menu_datefields = new Array();
var yii_sub_menu = new Array();
var yii_sub_menu_parent = new Array();
var yii_current_active_menu = "";
var right_offset = 0;

// another function to handle the different event models of different browsers and prevent event bubbling in a lesser way
function e_by_gum(eventobj){
	if (!eventobj || is_ie){
		window.event.cancelBubble = true;
		return window.event;
	}else{
		if (eventobj.target.type == 'submit'){
			// naughty safari
			eventobj.target.form.submit();
		}
		eventobj.stopPropagation();
		return eventobj;
	}
}

// get left position of elm
function fetch_object_posleft(elm){
	var left = elm.offsetLeft;
	while((elm = elm.offsetParent) != null){
		left += elm.offsetLeft;
	}
	if(typeof(yii_sub_menu[yii_current_active_menu]) != "undefined" && yii_sub_menu[yii_current_active_menu]!=null && yii_sub_menu[yii_current_active_menu]>0){
		left += yii_sub_menu[yii_current_active_menu];
	}
	return left+15;
}

// get top position of elm
function fetch_object_postop(elm){
	var top = elm.offsetTop;
	while((elm = elm.offsetParent) != null) {
		top += elm.offsetTop;
	}
	return top+7;
}

function yii_menu_doregister(controlid, rOffset, parentMenu, nowrite, datefield){
	if (document.getElementsByTagName) {
		var controlobj = fetch_object(controlid);
		if (controlobj) {
			if(rOffset>0){
				yii_sub_menu[controlid]=rOffset;
			}
			if(parentMenu!=null){
				yii_sub_menu_parent[controlid]=parentMenu;
			}
			if (datefield) {
				yii_menu_datefields[controlid] = datefield;
			}
			
			yii_menu_registered[yii_menu_registered.length] = controlid;
			return true;
		}
	}
	
	return false;
}

// function to get the menu basename - 'menu.104' returns 'menu', 'x.menu' returns 'x'
function yii_menu_getmenuid(controlid){
	var dotpos = controlid.indexOf(".");
	if (dotpos != -1) {
		return controlid.substr(0, dotpos);
	}	else {
		return controlid;
	}
}

// handle menu control mouseover events
function yii_menu_eventhandler_mouseover(e){
	e = do_an_e(e);
	yii_menu_hover(this);
}

// handle menu control click events
function yii_menu_eventhandler_click(e){
	e = do_an_e(e);
	yii_menu_open(this);
}

// close all open menus
function yii_menu_close(){
	var flsg=false;
	var mid;
	if (yii_menu_currentactive) {
		for (key in yii_menu_activemenus) {
			mid = yii_menu_getmenuid(key);
			flsg=false;
			/*for(subkey in yii_sub_menu_parent){
				if(yii_sub_menu_parent[yii_menu_getmenuid(subkey)]==mid ){
					flsg=true;
				}
			}*/
			if(!flsg){
				fetch_object(mid + "_menu").style.display = "none";
				yii_menu_activemenus[key] = false;
			}
		}
	}

	if(yii_current_active_menu=="drop_color_menu" && fetch_object("drop_color_menu").style.display=="block" ){
		fetch_object("drop_color_menu").style.display="none";
		yii_current_active_menu="";
	}

	yii_menu_currentactive = false;
	
	if (slidetimer) {
		clearTimeout(slidetimer);
		slidetimer = false;
	}
	
	if (is_ie) {
		selects = document.getElementsByTagName("select");
		for (var i = 0; i < selects.length; i++) {
			selects[i].style.visibility = "visible";
		}
	}
}

// open menu under pointer if another menu is active
function yii_menu_hover(elm){
	for (key in yii_menu_activemenus) {
		if (yii_menu_activemenus[key] == true && key != elm.id) {
			yii_menu_open(elm);
			return;
		}
	}
}

// detect if selectobj overlaps m
function yii_menu_overlap(selectobj, m){
	s = new Array();
	s['L'] = fetch_object_posleft(selectobj);
	s['T'] = fetch_object_postop(selectobj);	
	s['R'] = s['L'] + selectobj.offsetWidth;
	s['B'] = s['T'] + selectobj.offsetHeight;
	
	if (s['L'] >= m['L'] && s['L'] <= m['R'] && ((s['T'] >= m['T'] && s['T'] <= m['B']) || (s['B'] >= m['T'] && s['B'] <= m['B']))) { return true; }
	else if (s['R'] >= m['L'] && s['R'] <= m['R'] && ((s['T'] >= m['T'] && s['T'] <= m['B']) || (s['B'] >= m['T'] && s['B'] <= m['B']))) { return true; }
	else if (s['B'] >= m['T'] && s['T'] <= m['B'] && ((s['L'] >= m['L'] && s['L'] <= m['R']) || (s['R'] >= m['R'] && s['R'] <= m['R']))) { return true; }
	else if (m['B'] >= s['T'] && m['T'] <= s['B'] && ((m['L'] >= s['L'] && m['L'] <= s['R']) || (m['R'] >= s['R'] && m['R'] <= s['R']))) { return true; }
	else { return false; }
}

// open the clicked menu
function yii_menu_open(elm){
	var openmenu = yii_menu_currentactive;	
	if (openmenu == elm.id) {
		// clicked element was the control for the currently open menu - exit
		return false;
	}
	yii_menu_close();
	
	// get the id of the menu to be opened
	var menuid = yii_menu_getmenuid(elm.id) + "_menu";	
	var menuobj = fetch_object(menuid);
	var force_right_slide = false;
	if (typeof(yii_menu_datefields[elm.id]) != "undefined") {
		force_right_slide = true;
		fetch_object(elm.id + "_output").innerHTML = fetch_object(yii_menu_datefields[elm.id]).value;
	}	else {
		force_right_slide = false
	}
	
	yii_menu_activemenus[elm.id] = true;
	yii_menu_currentactive = elm.id;
	
	// get menu position
	var leftpx = fetch_object_posleft(elm)-20;
	var toppx = fetch_object_postop(elm) + elm.offsetHeight;
	
	// un-hide menu	
	menuobj.style.display = "";
	var slidedir = 'left';
	// attempt to keep menu on screen
	if (force_right_slide || (leftpx + menuobj.offsetWidth) >= document.body.clientWidth) {
		leftpx = leftpx + elm.offsetWidth - menuobj.offsetWidth;
		slidedir = "right";
	}	else {
		slidedir = "left";
	}
	// shuffle the IE menus a bit
	if (is_ie) {
		leftpx += (slidedir == "left") ? -2 : 2;
	}
	
	// set menu position
	menuobj.style.left = leftpx + "px";
	menuobj.style.top = toppx + "px";
	
	if (is_ie) {	
		menuarea = {
			"L" : leftpx,
			"T" : toppx,
			"R" : leftpx + menuobj.offsetWidth,
			"B" : toppx + menuobj.offsetHeight
		};		
		selects = document.getElementsByTagName("select");
		for (var i = 0; i < selects.length; i++) {
			if (yii_menu_overlap(selects[i], menuarea)) {
				selects[i].style.visibility = "hidden";
			}
		}
	}
	// slide menus open (internet explorer only)
	if (yii_menu_doslide && !is_opera && !is_ie4) {
		if (yii_menu_dofade && is_ie) {
			menuobj.filters.item('DXImageTransform.Microsoft.alpha').opacity = 0;
		}
		
		var intervalX = Math.ceil(menuobj.offsetWidth / yii_menu_opensteps);
		var intervalY = Math.ceil(menuobj.offsetHeight / yii_menu_opensteps);
		
		if (slidedir == "left") {
			menuobj.style.clip = "rect(auto, 0px, 0px, auto)";
			yii_menu_slide_left(menuid, intervalX, intervalY, 0, 0, 0);
		}		else {
			menuobj.style.clip = "rect(auto, auto, 0px, " + (menuobj.offsetWidth) + "px)";
			yii_menu_slide_right(menuid, intervalX, intervalY, menuobj.offsetWidth, 0, 0);
		}
	}
	return false;
}

// internet explorer slide menu open left
function yii_menu_slide_left(menuid, intervalX, intervalY, clipX, clipY, opacity){
	var menuobj = fetch_object(menuid);
	
	if (clipX < menuobj.offsetWidth || clipY < menuobj.offsetHeight) {
		if (yii_menu_dofade && is_ie) {
			opacity += 10;
			menuobj.filters.item('DXImageTransform.Microsoft.alpha').opacity = opacity;
		}
		clipX += intervalX;
		clipY += intervalY;
		//alert(menuid +"--"+ intervalX +"--"+ intervalY +"--"+ clipX +"--"+ menuobj.offsetWidth +"--"+ clipY +"--"+ menuobj.offsetHeight +"--"+ opacity);
		menuobj.style.clip = "rect(auto, " + clipX + "px, " + clipY + "px, auto)";
		setTimeout("yii_menu_slide_left('" + menuid + "', " + intervalX + ", " + intervalY + ", " + clipX + ", " + clipY + ", " + opacity + ");", 0);
	}	else {
		if(menuid=="drop_color_menu")
			yii_current_active_menu=menuid;
		clearTimeout(slidetimer);
	}
}

// internet explorer slide menu open right
function yii_menu_slide_right(menuid, intervalX, intervalY, clipX, clipY, opacity){
	menuobj = fetch_object(menuid);
	
	if (clipX > 0 || clipY < menuobj.offsetHeight) {
		if (yii_menu_dofade && is_ie) {
			opacity += 10;
			menuobj.filters.item('DXImageTransform.Microsoft.alpha').opacity = opacity;
		}
		clipX -= intervalX;
		clipY += intervalY;
		menuobj.style.clip = "rect(auto, " + menuobj.offsetWidth + "px, " + clipY + "px, " + clipX + "px)";
		setTimeout("yii_menu_slide_right('" + menuid + "', " + intervalX + ", " + intervalY + ", " + clipX + ", " + clipY + ", " + opacity + ");", 0);
	}	else {
		if(menuid=="drop_color_menu")
			yii_current_active_menu=menuid;
		clearTimeout(slidetimer);
	}
}

// function to navigate to the href of the first found <a> tag
function yii_menu_navtolink(e){
	childLinks = this.getElementsByTagName("a");
	if (childLinks[0]) {
		if (is_ie) {
			// use this in IE to send HTTP_REFERER
			childLinks[0].click();
			window.event.cancelBubble = true;
		}		else {
			// other browsers can use this
			if (e.shiftKey) {
				window.open(childLinks[0].href);
				e.stopPropagation();
				e.preventDefault();
			}			else {
				window.location = childLinks[0].href;
				e.stopPropagation();
				e.preventDefault();
			}
		}
	}
}

// function to toggle the background class of a menu option
function yii_menu_switch_option_bg(e){
	if (is_moz) {
		moz_rclick(e);
	}
	this.className = (this.className == "yii_menu_option") ? "yii_menu_hilite" : "yii_menu_option";
	yii_menu_hand_pointer(this);
}

// function to set the cursor to be pointer/hand
function yii_menu_hand_pointer(obj){
	try {
		obj.style.cursor = "pointer";
	}	catch(e) {
		obj.style.cursor = "hand";
	}
}

// function to initialize a single menu entry
function yii_menu_init(controlid){
	var menuid = yii_menu_getmenuid(controlid) + "_menu";
	var menuobj = fetch_object(menuid);
	if (document.getElementsByTagName && menuobj) {
		// do control object
		var controlobj = fetch_object(controlid);
		yii_menu_hand_pointer(controlobj);
		controlobj.unselectable = true;
		controlobj.onmouseover = yii_menu_eventhandler_click;
		//controlobj.onmouseover = yii_menu_eventhandler_mouseover;
		// don't initialize the same popup menu twice
		if (typeof(yii_menu_initialized[menuid]) != "undefined") {
			return;
		}
		
		// do popup menu object
		var popupobj = fetch_object(menuid);
		popupobj.style.display = "none";
		popupobj.style.position = "absolute";
		popupobj.style.left = "0px";
		popupobj.style.top = "0px";
		popupobj.onclick = e_by_gum;
		
		// reset inner table width
		var tables = popupobj.getElementsByTagName("table");
		if (tables.length > 0) {
			tables[0].width = "";
		}
		
		// init popup filters (ie only)
		if (is_ie) {		
			popupobj.style.filter += "progid:DXImageTransform.Microsoft.alpha(enabled=1,opacity=100)";
			popupobj.style.filter += "progid:DXImageTransform.Microsoft.shadow(direction=135,color=#FFFFFF,strength=5)";
		}
		
		// do menu options
		var tds = popupobj.getElementsByTagName("td");
		for (var i = 0; i < tds.length; i++) {
			if (tds[i].className == "yii_menu_option") {
				tds[i].style.cursor = "default";
				if (tds[i].title == "nohilite") {
					tds[i].title = "";
				}				else {
					tds[i].onmouseover = yii_menu_switch_option_bg;
					tds[i].onmouseout = yii_menu_switch_option_bg;
					tds[i].onclick = yii_menu_navtolink;
					if (!is_saf && !is_kon) {
						try {
							var links = tds[i].getElementsByTagName("a");
							for (var j = 0; j < links.length; j++) {
								if (typeof(links[j].onclick) == "undefined") {
									links[j].onclick = e_by_gum;
								}
							}
						}						catch(e) {
							// hmm
						}
					}
				}
			}			else if (is_moz) {
				tds[i].onmouseover = moz_rclick;
				tds[i].onmouseout = moz_rclick;
			}
		}
		yii_menu_initialized[menuid] = true;
	}
}

function moz_rclick(e){
	if (e.type == 'mouseover') {
		document.onclick = '';
	}	else {
		document.onclick = yii_menu_close;
	}
}


function openThirdLevel(){
	//lert("openthirdlevel"+document.getElementById("productized_services_menu").style.display);

	document.getElementById("productized_services_menu").style.display = "block";
	document.getElementById("navbar_products_menu").style.display = "block";
	var div = document.getElementById("navbar_products_menu").style.left.split("p");
	var leftIndex = Number (div[0])+180;
	
	document.getElementById("productized_services_menu").style.left = leftIndex+"px";
	


}

function closeThirdLevel(){
	document.getElementById("productized_services_menu").style.display = "none";
	
}

function close23Level(){
	document.getElementById("productized_services_menu").style.display = "none";
	document.getElementById("navbar_products_menu").style.display = "none";
}