registerOnLoad(function() {
	var selects = document.getElementsByTagName('SELECT');
	for(var i=0; i<selects.length; i++){
		setupSelects(selects[i], i);
	}
	
	var images = document.getElementsByTagName('IMG');
	for(var i=0; i<images.length; i++) {
		if(images[i].className == 'button'){
			var img = images[i];
			setupButtons(img);
			img = null;
		}
	}
	preload('http://webtv-club.com/img/icon-new16-prsd.gif', 
			'http://webtv-club.com/img/icon-top16-prsd.gif',
			'http://webtv-club.com/img/icon-selbtn-prsd.gif'
			);

	document.body.onclick = function(event) {
		event = event || window.event;
		var target = event.target || event.srcElement;

		if(target && target.className != 'button') {
			hide_current();
			//event_stop(event);
		}	
	}
	
})

function setupSelects(slct, n){
	var name = slct.name;
	if (name=='type') { var addForTypeList=" highlightBanner(event, this);"; }
	if (name=='views') { var addForTypeList=" setPrice(event, this);"; }
	else { var addForTypeList=""; }
	var s = '';
	var clss = (getParentByTagName(slct, 'FORM').parentNode.className == 'search')?' class="selectserch"':' class="selectnormal"';
	var tmpSide=getParentByTagName(slct, 'FORM').name;
        if (tmpSide=="top") {
		var z = 10000;
	}
	if (tmpSide=="bottom") {
		var z = 15000;
	}
	if (name=='chan_lang') {
		clss = clss + ' id="listright"';
	}
	s = '<div'+clss+' style="z-index:'+z+'">\n';
	s += '<table style="z-index:10000;" class="selected" cellpadding="0" cellspacing="0">\n';
	s += '<tr>\n';
	s += '<td onclick="selected(event, this);" class="fixthiscell">'+slct.options[0].innerHTML+'</td>\n';
	s += '<td width="17" height="16"><img src="/img/icon-selbtn.gif" class="button" style="width:17px; height:16px; margin-top:1px; margin-right:1px;" name="select" width="17" height="16" /></td>\n';
	s += '</tr>\n';
	s += '</table>\n';
	s += '<table style="display:none;" class="menu" border="0" cellspacing="0" cellpadding="0">\n';
	for(var i=0; i<slct.options.length; i++){
	var add4list = '';
	if (i==slct.selectedIndex) {
		var add4list2 = '';
		var add4list3 = '';
		if (name=='chan_cat') {
			add4list2=tmpSide;
		}
		if (name=='chan_lang') {
			add4list2=tmpSide;
		}
		add4list = ' id="selected' + name + add4list2 + '"';

//alert(add4list);
	}
	else add4list = '';
		s += '<tr><td><a' + add4list +' href="javascript:void(0)" onclick="selected(event, this);'+addForTypeList+'">'+slct.options[i].innerHTML+'</a></td></tr>\n';
	}
	s += '</table>\n';
	s += '</div>\n';
	slct.style.display = 'none';
	slct.parentNode.innerHTML += s;
	if (name=='type') selected(false, document.getElementById('selectedtype'));
	if (name=='views') selected(false, document.getElementById('selectedviews'));

	//if (name=='chan_cat') selected(event, document.getElementById('selectedchan_cattop'));
	
        if (tmpSide=="top") {
		if (name=='chan_cat') selected(false, document.getElementById('selectedchan_cattop'));
		if (name=='chan_lang') selected(false, document.getElementById('selectedchan_langtop'));
	}
	if (tmpSide=="bottom") {
		if (name=='chan_cat') selected(false, document.getElementById('selectedchan_catbottom'));
		if (name=='chan_lang') selected(false, document.getElementById('selectedchan_langbottom'));
	}

}

function setupButtons(img) {
	img.onmousedown = function(event) { press(event || window.event, img); }
	img.onmouseout = function(event) { unPress(img); }
	img.onmouseup = function(event) { unPress(img); }
}

function press(event, img){
	var name;
	if(img.name == "select"){
		name = "selbtn";
		var menu = toDefineMenu(img);
		if(menu.style.display == 'none'){
			show(event, img);
		}
		else hide(event, img);
	}
	else name = img.id;
	if (img.id!="top16" && img.id!="new16") img.src = "http://webtv-club.com/img/icon-"+name+"-prsd.gif";
}

function unPress(img){
	if(img.name == "select"){
		name = "selbtn";
	}
	else name = img.id;
	if (img.id!="top16" && img.id!="new16") img.src = "http://webtv-club.com/img/icon-"+name+".gif";
}

function toDefineMenu(obj){
	var div = getParentByTagName(obj, 'DIV');
	var menu = getChildNodeByClassName(div,'menu');
	return menu;
}

function preload(){
	for(var i=0; i<arguments.length; i++){
		var img = new Image();
		img.src = arguments[i];
	}
}

function selected(event, selectedItem){
	var div = getParentByTagName(selectedItem, 'DIV');
	var table = getChildNodeByClassName(div,'selected');
	var slct = getChildNodeByTagName(div.parentNode, 'SELECT');
	table.rows[0].cells[0].innerHTML = selectedItem.innerHTML; 
	
	for(var i=0; i<slct.options.length; i++){
		if(slct.options[i].text == selectedItem.innerHTML){
			slct.options[i].selected = true;
			slct.selectedIndex = i;
		}
	}
	if(getParentByTagName(selectedItem, 'TABLE').className == 'selected'){
		show(event, selectedItem);
	}
	else hide(event, selectedItem);
}

var current_menu = null;

function show(event, img){
	hide_current();

	var divtmp = getParentByTagName(img, 'DIV');
	var slcttmp = getChildNodeByTagName(divtmp.parentNode, 'SELECT');
	var tmpSide=getParentByTagName(slcttmp, 'FORM').name;
	var tmpSideOther="";
	if ((tmpSide!="top")&&(tmpSide!="bottom")) { tmpSideOther=getParentByTagName(slcttmp, 'DIV').className; }

	var menu = toDefineMenu(img);
	
	{//to define if menu is IN the visible part of window

	//bottom coordinate of window
	var wy = (window.screenY) ? window.screenY : window.screenTop;
	var wh = (window.innerHeight) ? window.innerHeight : document.body.clientHeight;
	var wBotCoor = wh - wy;
	
	menu.style.visibility = 'hidden';
	menu.style.display = 'block';
	var offsetLT = cumulativeOffset(menu);
	//bottom coordinate of select list
	var mBotCoor = offsetLT.y + menu.offsetHeight;
	if(mBotCoor > wBotCoor) {
			if(menu.style.top == "")
			menu.style.top = (menu.offsetTop - menu.offsetHeight - img.offsetHeight-1) + 'px';
		}

	if (tmpSide=="top") {
		menu.style.top = "";
	}
	if (tmpSide=="bottom") {
		menu.style.top = "";
		menu.style.top = (menu.offsetTop - menu.offsetHeight - img.offsetHeight-1) + 'px';
	}
	if (tmpSideOther=="field") {
		menu.style.top = "";

	}
	
	menu.style.visibility = '';
	}
	
	menu.style.display = '';

	current_menu = menu;

	event_stop(event)  
}

function cumulativeOffset(element) {
    var valueT = 0, valueL = 0;
    do {
      valueT += element.offsetTop  || 0;
      valueL += element.offsetLeft || 0;
      element = element.offsetParent;
    } while (element);
    return {x:valueL, y:valueT};
  }

function hide(event, selectedItem){
	var menu = toDefineMenu(selectedItem);
	menu.style.display = 'none';
}

function hide_current() {
	if(current_menu) current_menu.style.display = 'none';
}

function event_stop(event) {
	event = event || window.event;
	if(event.stopPropagation) {
		event.preventDefault();
	    event.stopPropagation();
	}
	else {
		window.event.returnValue = false;
	    window.event.cancelBubble = true;
	}
}

function getParentByTagName(element, tagName){
	var parent = element;
	do {
		parent = parent.parentNode;
		if(parent.tagName.toUpperCase() == tagName.toUpperCase()) return parent;
	} while(parent);
	return null
}

function getChildNodeByClassName(parent,className){
  for (var i=0;i<parent.childNodes.length;i++){
     if (parent.childNodes[i].className == className) return parent.childNodes[i];
  }  
  return false;
}

function getChildNodeByTagName(parent,tagName){
  for (var i=0;i<parent.childNodes.length;i++){
     if (parent.childNodes[i].tagName == tagName) return parent.childNodes[i];
  }  
  return false;
}
