var yii_menu_usepopups = false;
var ignorequotechars = 0;
// lets define the browser we have instead of multiple calls throughout the file
var userAgent = navigator.userAgent.toLowerCase();
var is_opera  = (userAgent.indexOf('opera') != -1);
var is_saf    = ((userAgent.indexOf('applewebkit') != -1) || (navigator.vendor == "Apple Computer, ."));
var is_webtv  = (userAgent.indexOf('webtv') != -1);
var is_ie     = ((userAgent.indexOf('msie') != -1) && (!is_opera) && (!is_saf) && (!is_webtv));
var is_ie4    = ((is_ie) && (userAgent.indexOf("msie 4.") != -1));
var is_moz    = ((navigator.product == 'Gecko') && (!is_saf));
var is_kon    = (userAgent.indexOf('konqueror') != -1);
var is_ns     = ((userAgent.indexOf('compatible') == -1) && (userAgent.indexOf('mozilla') != -1) && (!is_opera) && (!is_webtv) && (!is_saf));
var is_ns4    = ((is_ns) && (parseInt(navigator.appVersion) == 4));
// catch possible bugs with WebTV and other older browsers
var is_regexp = (window.RegExp) ? true : false;

// let's find out what DOM functions we can use
var vbDOMtype = '';
if (document.getElementById){
	vbDOMtype = "std";
}else if (document.all){
	vbDOMtype = "ie4";
}else if (document.layers){
	vbDOMtype = "ns4";
}
// make an array to store cached locations of objects called by fetch_object
var vBobjects = new Array();


if (document.layers){
	document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT | Event.CLICK);
}else{
	document.onmouseover=showStatus;
	document.onmouseout=showStatus;
	document.onclick = showStatus;
}

function showStatus(e){
	window.status="Arteria Technologies";
	return true;
}

// function to emulate document.getElementById
function fetch_object(idname, forcefetch){
	if (forcefetch || typeof(vBobjects[idname]) == "undefined")	{
		switch (vbDOMtype)		{
			case "std":
				vBobjects[idname] = document.getElementById(idname);
				break;
			case "ie4":
				vBobjects[idname] = document.all[idname];
				break;
			case "ns4":
				vBobjects[idname] = document.layers[idname];
				break;
		}
	}
	return vBobjects[idname];
}

// function to handle the different event models of different browsers and prevent event bubbling
function do_an_e(eventobj){
	if (!eventobj || is_ie){
		window.event.returnValue = false;
		window.event.cancelBubble = true;
		return window.event;
	} else {
		eventobj.stopPropagation();
		eventobj.preventDefault();
		return eventobj;
	}
}

// function to search an array for a value
function in_array(ineedle, haystack, caseinsensitive){
	var needle = new String(ineedle);
	if (caseinsensitive) {
		needle = needle.toLowerCase();
		for (i in haystack) {
			if (haystack[i].toLowerCase() == needle) {
				return i;
			}
		}
	} else {
		for (i in haystack)	{
			if (haystack[i] == needle) 	{
				return i;
			}
		}
	}
	return -1;
}

// function to register a menu for later initialization
function register_menu(controlid, rOffset, parentMenu, nowrite, datefield){

	if (yii_menu_usepopups)	{
		yii_menu_doregister(controlid, rOffset, parentMenu, nowrite, datefield);
	}
	
}

// ############## Menu Initialization #####################
function global_init(){
	if (is_webtv)	{
		return true;
	}
	// init registered menus
	if (yii_menu_usepopups && yii_menu_registered.length > 0)	{
		for (i in yii_menu_registered){
			yii_menu_init(yii_menu_registered[i]);
			//obj = document.getElementById(yii_menu_registered[i]+"_menu");//=yii_menu_close;
			//alert(obj.id+"--"+yii_menu_registered[i])
			//fixOnMouseOut(obj, event, 'justcall()');
		}
		// close all menus on mouse click
		document.onclick = yii_menu_close;
	}
	return true;
}

function closeMenu(){
	yii_menu_close();
}

function is_child_of(parent, child) {
	if( child != null ) {			
		while( child.parentNode ) {
			if( (child = child.parentNode) == parent ) {
				return true;
			}
		}
	}
	return false;
}
function fixOnMouseOut(element, event, JavaScript_code) {
	var current_mouse_target = null;
	if( event.toElement ) {				
		current_mouse_target 			 = event.toElement;
	} else if( event.relatedTarget ) {				
		current_mouse_target 			 = event.relatedTarget;
	}
	if( !is_child_of(element, current_mouse_target) && element != current_mouse_target ) {
		eval(JavaScript_code);
	}
}