var ps_drop_is_map = false;
var ps_drop_timer;
var ps_drop_cur = "";
var ps_locale = '';
var ps_map_focus_lock = false;
var ps_drop_timer_delay = 200;

var ps_drop_map_id = "ps_drop_map";
var ps_drop_list_id = "ps_drop_list"
var ps_drop_current_select_id = "current_select";
var ps_drop_imagemap_id = "ps_drop_usamap";

var ps_list_visible = false;

//_UTIL_addEvent(window,"load",ps_drop_init);


	
function ps_drop_init(){



	obj = document.getElementById(ps_drop_imagemap_id);
	if (obj){
		_UTIL_addEvent(obj,'click',psd_locale_click);
		ps_drop_is_map = true;
		var region = document.getElementById("region")
		var select_region_from_map = document.getElementById("select_region_from_map")
		if (select_region_from_map){
			select_region_from_map.appendChild(region)
		}
	}


	obj = document.getElementById(ps_drop_current_select_id);
//	if (!document.all)obj.parentNode.cleanDOM();


	if (obj){
		obj.setAttribute("href","javascript:void(0)");
	}
	

	

	
	var ul = document.getElementById(ps_drop_list_id);
	if (ul){
		psd_setUpSelectUl(ul);
	}
	
	if (obj){
		_UTIL_addEvent(obj,'click',psd_showMenu);
		_UTIL_addEvent(obj,'mouseover',psd_showMenu);
		_UTIL_addEvent(obj,'mouseout',psd_hideThis);
	}
	
	

}
	

function psd_toggleselect(force){
	var obj = document.getElementById(ps_drop_list_id);
	if (obj){
		if (force){
			obj.className = force;
		}else{
			obj.className = (obj.className=="hide") ? "show" : "hide";
		}
		if (obj.className == "show"){
			if (document.all) _UTIL_setIFrameBackground("ps_drop_list");
			ps_list_visible = true;
			
		}else{
			if (document.all) _UTIL_hideIFrameBackground("ps_drop_list");
			ps_list_visible = false;
			
				
			if (ps_drop_is_map){
				ps_map_focus_lock = false;

				if (!force){
					ps_locale = '';
				psd_mapfocus('');

				}
			}
		}
	}
	return false;
}



function psd_mapfocus(locale){
	var obj = document.getElementById(ps_drop_map_id);

	if (ps_locale!='' && locale!='' && locale != ps_locale && !ps_list_visible){
		psd_toggleselect('hide');
	}

	if (obj && !ps_map_focus_lock){
		if (locale != ''){
			obj.src = "/img/jk/usa_map_"+locale+".gif"
		}else{
			if (ps_list_visible && ps_locale != ''){
				obj.src = "/img/jk/usa_map_"+ps_locale+".gif"
			}else{
				obj.src = "/img/spacer.gif";
			}
		}
		ps_locale = locale;

	}
}


	function psd_togglesection(){
		var obj = this.parentNode;
		if (obj){
			obj.className = (obj.className=="cur") ? "" : "cur";
		}
		obj = getFirstSiblingByTagName(this,"ul");
		
		if (obj){
			obj.className = (obj.className=="hide") ? "show" : "hide";
		}
		if (document.all) _UTIL_setIFrameBackground("ps_drop_list");
		return false;
	}
	
	function _UTIL_addEvent( obj, type, fn ) {
		if ( obj.attachEvent ){
			obj["e"+type+fn] = fn;
			obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
			obj.attachEvent( "on"+type, obj[type+fn] );
		}else{
			obj.addEventListener( type, fn, false );
		}
	}
	
	function _UTIL_removeEvent( obj, type, fn ){
		if ( obj.detachEvent ) {
			obj.detachEvent( "on"+type, obj[type+fn] );
			obj[type+fn] = null;
		}else{
			obj.removeEventListener( type, fn, false );
		}
	}

	function psd_showMenu(){
		psd_toggleselect("show");
		psd_dontHideThis();
	}
	
	
	function getFirstSiblingByTagName(obj,type){

		var a = obj.parentNode.getElementsByTagName(type);
		for (var i=0; i<a.length; i++){
			if (obj.parentNode == a[i].parentNode){
				return a[i];
			}
		}
		for (var i=0; i<a.length; i++){
			if (obj.parentNode == a[i].parentNode.parentNode){
		//		return a[i];
			}
		}
	}
	
	function psd_hideThis(){
		obj = document.getElementById("current_select");
		var ul = document.getElementById(ps_drop_list_id);
		
		if (ps_drop_is_map){
			ps_map_focus_lock = false;
		}
		ps_drop_timer = setTimeout("psd_toggleselect('hide')",ps_drop_timer_delay);
	}
	
	function psd_dontHideThis(){
		clearTimeout(ps_drop_timer);
	}
	
	function psd_Hide(objid){
		psd_toggleselect(force);
	}
	
	var debug = true;
	
	function psd_setUpSelectUl(obj){
		var x = obj.childNodes;
		
		var liChildren = obj.getElementsByTagName("li");

		for (var i=0;i<liChildren.length;i++){							
			if(liChildren[i].parentNode == obj){
				var aChildren = liChildren[i].getElementsByTagName("h4");
				for (var j=0;j<aChildren.length;j++){
					if(aChildren[j].parentNode == liChildren[i]){
						var h4 = aChildren[j];
						_UTIL_addEvent(h4,"click",psd_togglesection);
						h4.onmouseover = function(){ this.className = "hover" };
						h4.onmouseout = function(){ this.className = "" };			
					}
				}
				var ulChildren = liChildren[i].getElementsByTagName("ul");
				for (var j=0;j<ulChildren.length;j++){
					if(ulChildren[j].parentNode == liChildren[i]){
						var u = ulChildren[j];
						var expand = false;
						var lis = u.getElementsByTagName('li');
						for (var k=0; k<lis.length; k++){
							if ("ps_drop_"+ps_drop_cur == lis[k].getAttribute("id")){
								expand = true;
							}
						}
						
						if (expand){
							liChildren[i].className = "cur";
						}else{
							u.className = "hide";
						}
					}
						
				}
			}
		}
		_UTIL_addEvent(obj,"mouseover",psd_dontHideThis);
		_UTIL_addEvent(obj,"mouseout",psd_hideThis);
		
		var region = document.getElementById("region")
		if (region){
			region.className = "show";
		}
	}
	
	


Object.prototype.cleanDOM = function(){
	var z=this.childNodes,i;  //get all child nodes of an element
	z?(i=z.length):'';	  //will start only if there are child nodes

	while(i--)	 	// for every child node
	(z[i].nodeType==3&&!/\S/.test(z[i].nodeValue)||z[i].nodeType==8)?
			//if it is a text node or a comment,
			//and if it contains only tabs, new lines or spaces
	this.removeChild(z[i]):	//  then remove the node, else
	(z[i].hasChildNodes)?	// if the node has child nodes
	z[i].cleanDOM():'';	// run the function on child nodes
}



function psd_locale_click(e){
	if(!e) e = window.event;

	ps_map_focus_lock = true;
	if(!document.all)psd_dontHideThis();
	
	var map = document.getElementById(ps_drop_map_id);

	var region = document.getElementById("region");
	
	var map_x = e.clientX-_UTIL_getPosleft(region)+_UTIL_getScrollLeft()-6;
	var map_y = e.clientY-_UTIL_getPostop(region)+_UTIL_getScrollTop()-6;	
	
	var obj = document.getElementById(ps_drop_list_id);
	obj.className="show";
	
	var d = obj.getElementsByTagName('li');

	for (var i=0; i<d.length; i++){
		if (obj == d[i].parentNode){
			d[i].className="hide";
		}
	}
	
	if (ps_locale != ''){
		document.getElementById("ps_drop_"+ps_locale).className="cur";
		var x = document.getElementById("ps_drop_"+ps_locale).childNodes;
		

			
		for (var i=0;i<x.length;i++){

		if (x[i].nodeType == 1){

				var a = x[i].getElementsByTagName('a');

				var lis = x[i].getElementsByTagName('li');
				for (var j=0; j<lis.length; j++){
					lis[j].className = "show";
				}
				x[i].className = "show";
		}
		}
		
		if (_UTIL_getScrollTop()+_UTIL_getAvailHeight()<map_y+obj.offsetHeight+20)
			map_y = _UTIL_getScrollTop()+_UTIL_getAvailHeight()-obj.offsetHeight-20;
		
		obj.style.top = map_y+"px";
		obj.style.left = map_x+"px";
		obj.style.border = "1px solid #666";
		ps_map_focus_lock = true;
	}else{
		obj.className="hide";
	}
	return false;
}

function psd_maptextswitch(type){
	var map = document.getElementById(ps_drop_map_id);
	var list = document.getElementById("locale_section");
	if (type=="map"){
		map.className = "show";
		list.className="hide";
	}else{
		map.className = "hide";
		list.className="show";
	}
}

_UTIL_addDOMLoadEvent(ps_drop_init);
