var bannerBasePath = "/images/top/";
var omitformtags=["INPUT", "TEXTAREA", "SELECT"];
var menuPosition=1;
var menuRotateInProgress=false;
var menuRotateToNext=false;
var menuObj1,menuObj2;
var menuCatObj1,menuCatObj2;
var menuKey;
var menuOverpos=false;

var dragging=false;
var dragDelta = 0;
var dragPrevious = 0;

var timerImageBlend;
var bannerCircle = Array();
var bannerCirclePos=0;
var bannerDelay = 10000;
var bannerCategoryDelay = 4000;

var logoutButton = false;

function init(){
	modifySelection();
	changeBannerCircle(banner_cat_start, bannerDelay);
	// Init Blend Image
	var objBlend = document.getElementById('bannerBlend');
	objBlend.onload = function() {
		imageBlendLoop(0);
  };
}

function rotateMenu(){
	if (menuRotateInProgress == false){
		menuRotateInProgress = true;
		// find affected bars
		menuObj1 = document.getElementById('menubar'+menuPosition);
		menuCatObj1 = document.getElementById('menucat'+menuPosition);
		if (!menuObj1 || !menuCatObj1) {
			menuObj1 = document.getElementById('menubar1');
			menuCatObj1 = document.getElementById('menucat1');
			menuPosition=1;
		}
		menuObj2 = document.getElementById('menubar'+(menuPosition+1));
		menuCatObj2 = document.getElementById('menucat'+(menuPosition+1));
		if (!menuObj2 || !menuCatObj2) {
			menuObj2 = document.getElementById('menubar1');
			menuCatObj2 = document.getElementById('menucat1');
		}

		menuKey = menuCatObj2.getAttribute('subid');

		var height;
		if (document.all) {
			height = menuObj2.style.pixelHeight;
		}
		else {
			height = menuObj2.offsetHeight;
		}
		rotateMenuLoop(0, height, -height-1, 0, 50, 0);
	}
	else {
		menuRotateToNext = true;
	}
//		alert('x');
}

function accRotateMenu(){
	if (menuRotateInProgress == true){
		//menuOverpos = true;
		menuRotateToNext = false;
	}
}

function dragMenuStart(evt){
	if (dragging == false){
		dragging = true;
		var posy;
		if (evt.y){
			posy=evt.y;
		}
		else {
			posy = evt.clientY + document.body.scrollTop;
		}
		//alert(posy);
		//alert('drag');
		echoDebug("PosY:"+posy);
	}
}

function drag(evt){
	if (dragging){
		var posy;
		if (evt.y){
			posy=evt.y;
		}
		else {
			posy = evt.clientY + document.body.scrollTop;
		}
		dragDelta = dragPrevious - posy;
		dragPrevious = posy;
		echoDebug("PosY:"+posy+"\n"+dragDelta);
	}
}

function dragMenuStop(){
	//alert('drag');
	dragging=false;
}

function echoDebug(text){
	var obj = document.getElementById('debugdiv');
	if (obj){
		obj.innerHTML = text;
	}
}

function rotateMenuLoop(start1, end1, start2, end2, steps, pos){
	if (pos < steps){
		if (menuOverpos) pos = steps-1;
		pos++;
		var s = soft(1/steps * pos);
		var posi1 = Math.round(start1 + (s/(1/(end1-start1))));
		var posi2 = Math.round(start2 + (s/(1/(end2-start2))));

		if (menuObj1 && menuObj2){
			menuObj1.style.top = posi1;
			menuObj2.style.top = posi2;
			menuCatObj1.style.top = posi1;
			menuCatObj2.style.top = posi2;

			execute = "rotateMenuLoop("+start1+","+end1+","+start2+","+end2+","+steps+","+pos+");";
			window.setTimeout(execute, 10);
		}
	}
	else {
		menuPosition++;
		menuRotateInProgress = false;
		menuOverpos = false;
		
		changeBannerCircle(menuKey, bannerCategoryDelay);

		if (menuKey == "Search"){
			var obj = document.getElementById("searchin");
			if (obj){
				obj.focus();
			}
		}
		
		if (menuRotateToNext){
			menuRotateToNext = false;
			rotateMenu();
		}
	}
}

function soft(pos) {
	return (-Math.cos(pos*Math.PI)/2) + 0.5;
}

function checkSubmit(){
	var result=false;
	var obj = document.getElementById("searchin");
	if (obj){
		var val = obj.value.replace(/^\s+/, '').replace (/\s+$/, '');
		if (val != "" && val != "Search for..."){
			result = true;
		}
	}
	return result;
}


function modifySelection(){

	if (typeof document.onselectstart != "undefined"){
		document.onselectstart=selectDisable;
		if (document.getElementsByTagName){
			var onselstart = function(){document.onselectstart=selectEnable;}
			var onmouup = function(){document.onselectstart=selectDisable;}
			var tags=document.getElementsByTagName('*');
			for (var j = 0; j < tags.length; j++){
				for (var i = 0; i < omitformtags.length; i++){
					if (tags[j].tagName == omitformtags[i]){
						tags[j].onselectstart=onselstart;
						if (tags[j].onmouseup == null){
							tags[j].onmouseup=onmouup;
						}
						else{
							var mUp=tags[j].onmouseup.toString();
							mUp='document.onselectstart=new Function (\'return false\');\n'+mUp.substr(mUp.indexOf('{')+2,mUp.lastIndexOf('}')-mUp.indexOf('{')-3);
							tags[j].onmouseup=new Function(mUp);
						}					
					}
				}
			}
		}
	}
	else{
		document.onmousedown=selectPrevention;
		document.onmouseup=selectEnable;
	}
}

function selectPrevention(e){

	for (i = 0; i < omitformtags.length; i++){
		if (omitformtags[i]==e.target.tagName) {
			return true;
		}
	}
	
	return false;
}

function selectEnable(){
	return true;
}

function selectDisable(){
	return false;
}

// Banner
function changeBannerCircle(menukey, delay){
	if (banner[menukey]){
		clearTimeout(timerImageBlend);
		bannerCategoryChange = true;
		bannerCircle = banner[menukey];
		bannerCirclePos = 0;
		timerImageBlend = setTimeout("startBannerCircle()", delay);
	}
}

function changeOpaID(id, opacity) {
	var obj = document.getElementById(id);
	changeOpa(obj, opacity);
}

function changeOpa(obj, opacity) {
	if (obj){
		if (document.all){
			obj.style.filter = "alpha(opacity="+opacity+")";
		}
		else {
			obj.style.opacity = (opacity / 100);
			obj.style.MozOpacity = (opacity / 100);
			obj.style.KhtmlOpacity = (opacity / 100);
		}
	}
}

function startBannerCircle(){
	bannerCategoryChange = false;
	var objShow = document.getElementById('bannerShow');
	var objBlend = document.getElementById('bannerBlend');
	if (objShow && objBlend){
		changeOpa(objBlend, 0);
		if (++bannerCirclePos >= bannerCircle.length){
			bannerCirclePos=0;
		}
		var nextImage = bannerCircle[bannerCirclePos];
		loadImage(objBlend, nextImage);
	}
}

function loadImage(obj, imagePath){
	obj.src = bannerBasePath + imagePath;
}

function imageBlendLoop(opa){
	changeOpaID("bannerBlend", opa);
	opa++;
	if (opa <= 100){
		setTimeout("imageBlendLoop("+opa+")", 20);
	}
	else {
		// Next cycle
		var objShow = document.getElementById('bannerShow');
		var objBlend = document.getElementById('bannerBlend');
		if (objShow && objBlend){
			objShow.src = objBlend.src;
			changeOpa(objBlend, 0);
		}
		if (bannerCategoryChange == false){
			clearTimeout(timerImageBlend);
			timerImageBlend = setTimeout("startBannerCircle()", bannerDelay);
		}
	}
}

function gotoStart(){
	top.main.location="start.html";
}

function disableLoginButton(){
	if (logoutButton == false){
		logoutButton = true;
		var obj = document.getElementById('toplinkloginlink');
		if (obj){
			obj.target = "_top";
			obj.href = "/?action=logout";
			obj.innerHTML = "Logout";
		}
	}
}

window.onload=init;
document.onmouseup = dragMenuStop;
