// Cat names

// A php version of this list is in header.php
menuOptions = Array(
Array("Teknik", "Tv / Video", "Stereo", "Multimedia", "Hushåll", "Data", "Övrigt"),
Array("Motor", "Bil", "Båt", "MC", "Övrigt"),
Array("Hem", "Kök", "Möbler", "Inredning", "Trädgård", "Övrigt"),
Array("Upplevelse &amp; fritid", "Resor", "Utbildningar", "Mässor", "Sportutrustning", "Djur och natur", "Övrigt"),
Array("Tjänster", "Alla kategorier")
);

// Temp names

rbSelectedTool = "";
rbSelectedSubTool = "";
rbHeaderName = "";
rbPrevHeader = "";

//userRefreshPreset();
userRefreshTimeout = false;
userRefreshForm = false;

chatRefreshTimeout = false;

function setClass(id, theClass)
{
	obj = getElement(id);
	if(!obj)
		return false;
	obj.className = theClass;
}

function miniContent(box, kind, param2) // box = 1: left, box = 2: right, kind is 1 - 6
{
	if(param2 == null)
		param2 = 0;

	sndReq('t_miniContent' + box, kind, param2, 0, 0, box);
}

/*function presetMiniContens(left, right)
{
	miniContent(1, left);
	miniContent(2, right);
}*/

function infoDisplaySwap(object)
{
	childs = object.childNodes;
	contentIndex = 1;
	for(var i = 0; i < childs.length; ++i)
	{
		switch(userBrowser)
		{
			case "Internet Explorer":
				contentIndex = 1;
			break;
			case "Opera":
			case "Firefox":
				contentIndex = 3;
			break;
		}
	}

	paragraph = childs[1];
	//alert(contentIndex);
	if(paragraph.style.display == "none")
		paragraph.style.display = "block";
	else
		paragraph.style.display = "none";	
}

function hideMessages()
{
	for(i = 1; i < 100; i++)
	{
		el = getElement("messageBox" + i);
		if(!el)
			continue;
		infoDisplaySwap(el);
	}
}

function swapResourceFields(val)
{
	obj1 = getElement('presImgContainer');
	obj2 = getElement('resizeContainer');
	dc = getElement('dataContainer');
	info = getElement('resKindHelp');
	fc = getElement('fileContainer');

	if(!obj1 || !obj2)
		alert("ERR");

	isImage = false;
	if(val == 0 || val == 2 || val == 6)
		isImage = true;

	if(val == 7)
	{
		dc.style.display = "block";
		fc.style.display = "none";
	}
	else
	{
		dc.style.display = "none";
		fc.style.display = "block";
	}

	if(!isImage)
	{
		obj1.style.display = "block";
		obj2.style.display = "none";
	}
	else
	{
		obj1.style.display = "none";
		obj2.style.display = "block";
	}

	helpText = "";
	if(val == 0) // image)
		helpText = 'Produktbild är ett foto i 4:3-format (höjden är 0.75 * bredden) som man först laddar upp här, och sedan ansluter till sin produkt när man skapat den under "Produkter". Produktbilder (precis som all annan produktmedia) kommer att tillhöra produkten överallt där produkten används. Om ni skapar en tävling med denna produkt, då kommer automatiskt produktens bilder hamna i tävlingsverktyget.';
	else if(val == 1) // video
		helpText = "Video kopplad till produkt, vi varnar för att vissa stora filer inte fungerar som de ska vid uppladdning. Om ni har problem med stora filer så hjälper vi er gärna, kontakta oss under support.";
	else if(val == 2) // mediapres
	{
		helpText = "Mediapresentation fungerar som produktbild, men är avsedd för att användas enbart som presentationsbild för ett annat medium. Låt säga att ni vill ha en film med i tävlingen, då behöver filmen en presentationsbild som visas i tävlingen som deltagaren sedan klickar på för att visa filmen, samma sak gäller fler mediatyper.";
		helpText += "<br/>Denna bild är förslagsvis något som representerar mediet på ett bra sätt, t.ex. en bild ur en film, eller en bild på objektet vars ljud spelas upp, eller en bild på hemsidan ni länkar till.";
	}
	else if(val == 3) // flash
		helpText = "Flashfil, stödjs i dagsläget inte. Användningsområde: tanken är att erbjuda flashspel och andra interaktiva verktyg för användaren, kontakta oss om du vill använda flash.";
	else if(val == 4) // sound
		helpText = "Ljudfil till produkt. Användningsområde: låt säga att er produkt är en motorsåg och ni vill ha en ljudfil med tre olika maskiner, motorsåg, tvättmaskin och radiostyrd bil där den tävlande ska avgöra vad som är vad.";
	else if(val == 5) // doc
		helpText = "Dokument till produkt. Dokumentet är ett verktyg avsett för dig som tävlingsadministratör. Här kan du lägga information rörande produkten för att ha allt samlat för att hålla din information relaterat till din produkt samlat på ett smidigt sätt.";
	else if(val == 6) // logo
		helpText = "Kundlogga, denna logga kommer att visas i vissa samband med då ert företag visas hos Wintown.se.";
	else if(val == 7) // site
		helpText = "Site, er egen eller annan site som tävlingsmedia. Användningsområde: Låt säga att er tävling uppmuntrar till att man besöker er site, eller kanske en sökmotor för att finna en viss tävlingsinformatiom.";
	
	info.innerHTML = helpText;
}

function updateResourceFields(kind)
{
	swapResourceFields(kind);
}

function updateFields(page)
{
	uName = getElement("uName");
	if(uName)
	{
		evalUname(uName.value, true);
	}

	charCount = getElement("charCounter");
	message = getElement("message");
	if(charCount && message)
	{
		charCounter("charCounter", message, charCount.innerHTML);
	}

	if(page == "admEditUser")
	{
		obj = getElement("reqJavascript");
		if(obj)
		{
			obj.style.display = "none";
		}
	}
}

function validateErase()
{
	element = getElement("validateRemove");
	if(!element)
	{
		alert("Ingen kontroll hittad, avbryter!");
		return false;
	}
	if(element.checked == false)
	{
		alert("Kontrollrutan är inte ikryssad, avbryter!");
		return false;
	}
	return true;
}

function updateSubCats(obj, subName)
{
	subObj = getElement(subName);
	if(!subObj || !obj)
	{
		alert("Fel");
		return;
	}

	// Remove old
	subObj.options.length = 0;

	//alert(menuOptions[obj.value][0]);
	// Add new
	for(i = 1; i < menuOptions[obj.value].length; i++)
	{
		subObj[i-1] = new Option(menuOptions[obj.value][i],i-1); 
	}
}

function pageUpdate(userId)
{
	/*
	This should check for friend updates
	Mails
	Maybe new forum posts for supervised threads... More?
	Some security?
	*/
}

function clearClass(name)
{
	obj = getElement(name);
	if(!obj)
		return;//alert("FEL: " + name + " kunde inte hittas");
	obj.className = "";
}

function setWelcomeClasses(current)
{
	clearClass("tabactivity");
	clearClass("tabnews");
	clearClass("tabimportant");
	clearClass("tabsurvey");
	clearClass("tabforumdump");
	clearClass("tabadmin");
	clearClass("tabvotes");
	clearClass("tabhelp");


	
	objCur = getElement("tab" + current);
	if(objCur)
	{
		objCur.className="selected";
	}
}

function friendSelectOnChange(theForm, value, param, param2)
{
	//alert("Funktion kommer snart");
	if(value == -1)
	{
		obj = getElement(param);
		if(!obj)
			alert("ERR");

		obj.innerHTML = '<input name="" id="" value="Skriv id eller användarnamn här" onfocus="this.value=\'\'"/> ';
		obj.innerHTML += '<button onclick="friendSelectOnChange(this.form, \'\', \'dynamicInput\'); return false;">Ångra</button>';
		//alert("Funktion kommer snart");
	}
	else if(value == "")
	{
		obj.innerHTML = '<input name="" id="" value="Skriv id eller användarnamn här" onfocus="this.value=\'\'"/> ';
	}
}

function selectLogin()
{
	//ojb = getElement("loginName");
	//obj.focus();
	form = document.forms[0];
	if(!form)
		return;
	obj = form["loginName"];
	if(!obj)
		return;
	if(obj.value.length > 0)
		return;
	obj.focus();
}




function setMemberBoxJS()
{
	heading1 = 'Mina vänner';
	heading2 = 'Inkorgen';
	heading3 = 'Mina tävlingar';
	heading4 = 'Mina annonser';
	heading5 = 'Sök medlem';

	obj = getElement('toolFriends');
	if(!obj)
		return false;

	obj.onmouseover = function(){toolHoverDesc(heading1);};
	obj.onmouseout	= function(){toolHoverDesc('');};
	obj.onclick		= function(){if(newFriend) {toolHoverDesc(heading1); return true}; if(rbSelectedTool == this.id) return false; miniContent(2, 1); unSelectTools(); this.className = newFriend ? "selected new" : "selected"; rbSelectedTool=this.id; toolHoverDesc(heading1); return false;};
	obj.title		= "Här ser du dina vänner som du registrerat";



	obj = getElement('toolMail');
	if(!obj)
		return false;

	obj.onmouseover = function(){toolHoverDesc(heading2);};
	obj.onmouseout	= function(){toolHoverDesc('');};
	obj.onclick		= function(){/*if(newPm) return true; */if(rbSelectedTool == this.id) return false; miniContent(2, 2); unSelectTools(); this.className= newPm ? "selected new" : "selected"; rbSelectedTool=this.id; toolHoverDesc(heading2); return false;};
	obj.title		= "Här kan du se dina meddelanden";

	obj = getElement('toolContests');
	if(!obj)
		return false;

	obj.onmouseover = function(){toolHoverDesc(heading3);};
	obj.onmouseout	= function(){toolHoverDesc('');};
	obj.onclick		= function(){if(rbSelectedTool == this.id) return false; miniContent(2, 3); unSelectTools(); this.className="selected"; rbSelectedTool=this.id; toolHoverDesc(heading3); return false;};
	obj.title		= "Här ser du dina tävlingar";

	obj = getElement('toolMarket');
	if(!obj)
		return false;

	obj.onmouseover = function(){toolHoverDesc(heading4);};
	obj.onmouseout	= function(){toolHoverDesc('');};
	obj.onclick		= function(){if(rbSelectedTool == this.id) return false; miniContent(2, 4); unSelectTools(); this.className="selected"; rbSelectedTool=this.id; toolHoverDesc(heading4); return false;};
	obj.title = "Dina annonser";

	obj = getElement('toolSearch');
	if(!obj)
		return false;

	obj.onmouseover = function(){toolHoverDesc(heading5);};
	obj.onmouseout	= function(){toolHoverDesc('');};
	obj.onclick		= function(){if(rbSelectedTool == this.id) return false; miniContent(2, 5); unSelectTools(); this.className="selected"; rbSelectedTool=this.id; toolHoverDesc(heading5); return false;};
	obj.title = "Hitta andra medlemmar";
}

function unSelectTools()
{
	setClass("toolFriends", newFriend ? "new" : "");
	setClass("toolMail", newPm ? "new" : "");
	setClass("toolContests", "");
	setClass("toolMarket", "");
	setClass("toolSearch", "");
}

function toolHoverDesc(desc)
{
	obj = getElement("toolHoverDesc");
	if(!obj)
		return false;

	rbPrevHeaderTmp = rbPrevHeader;
	rbPrevHeader = obj.innerHTML;

	if(desc.length == 0)
		obj.innerHTML = rbPrevHeaderTmp;
	else
		obj.innerHTML = desc;
}


function decreaseBox(obj)
{
	// tänkte ha till stretchboxarna på profilsidan.. kanske är en dum idé, men orka bråka med måtten
}


// Function called now and then to make sure the user is still logged in and store some data for possible crasch or so
function userRefreshPreset(obj, activity, param1)
{
	//alert(obj.name);
	//userRefreshTimeout = 
	userRefreshForm = obj.form;
	if(!userRefreshTimeout)
	{
		delay = 2000;
		userRefreshTimeout = setTimeout('userRefresh("' + activity + '", ' + param1 + ', "' + obj.name + '")',delay);
	}

	
}

function userRefresh(activity, param1, param2)
{
	clearTimeout(userRefreshTimeout);
	userRefreshTimeout = false;
	

	theValue = eval("userRefreshForm." + param2 + ".value;");
	sndReq('t_ajax.php', 'userRefresh', activity, param1, escape(theValue));
}

function swapMenu(obj)
{
	theParent = obj.parentNode;

	if(!theParent)
		return;

	for (j=0; j < theParent.childNodes.length; j++)
	{
		theChild = theParent.childNodes[j];

		if(theChild.nodeName != "UL")
			continue;
		
		if(theChild.style.display == "none")
			theChild.style.display = "block";
		else
			theChild.style.display = "none";
	}
}

function prepareContestMenu()
{
	obs = Array();
	obj[1] = getElement("menuTeknik");
	obj[2] = getElement("menuMotor");
	obj[3] = getElement("menuHem");
	obj[4] = getElement("menuUpplevelse");
	obj[5] = getElement("menuTjanster");
	
	for(i = 1; i < 6; i++)
	{
		theParent = obj[i];
		if(!theParent)
			continue;
		
		theParent.onmouseover = function(){ this.id="selectedMenuItem"; }
		theParent.onmouseout = function(){ this.id=""; }

		for (j=0; j < theParent.childNodes.length; j++)
		{
			theChild = theParent.childNodes[j];

			if(theChild.nodeName == "A")
			{
				if(theChild.className == "switch")
				{
					theChild.onclick = function(){ swapMenu(this); return false; }
				}
			}
		}
	}
}

// The return value is only for telling the script if this is the bottom menu or not (bottom = no child menu = set content)
function switchMenu(menu)
{
	obj = getElement(menu);

	if(!obj)
		return false;
	theParent = obj.parentNode;

	if(!theParent || theParent.nodeName != "UL")
		return false;
	
	parentParent = theParent.parentNode;
	if(!parentParent)
		return false;

	menuLevel = obj.parentNode.parentNode.id.substring(8);


	//if(obj.className == "selected" && menuLevel == 3) // already selected, abort
	//	return true;

	// Reset all sibbling selections and select this
	setChildNodeValues(theParent, "LI", "className", '""');
	obj.className = "selected";


	// Remove underscore from name to match child name
	//menu = menu.substring(menu.indexOf("_")+1);

	// Kill lowest menu level if not using it
	if(menuLevel == 3)
	{
		theParent = getElement("menuTabs3");
		for (i=0; i < theParent.childNodes.length; i++)
		{
			ulChild = theParent.childNodes[i];
			if(ulChild.nodeName != "UL")
				continue;

			for (j=0; j < ulChild.childNodes.length; j++)
			{
				liChild = ulChild.childNodes[j];
				if(!(liChild.nodeName == "LI" && liChild.className == "selected"))
					continue;

				if(obj.id != liChild.id)
					liChild.className = "";
			}
		}
		return false;
	}
	else
	{
		closeMenuLevel(3);
		return openSubMenu(getElement("menuTab_" + menu));
	}
}

function openSubMenu(obj)
{
	// Change submenu
	if(!obj)
		return false;
	
	setChildNodeValues(obj.parentNode, "UL", "className", '""');
	obj.className = "selected";

	// If has selected button, open child menu

	selectedChild = findChildValue(obj, "LI", "className", "selected");

	//selectedChild = obj.childNodes[0];
	if(selectedChild)
	{
		//menu = selectedChild.id.substring(selectedChild.id.indexOf("_")+1);
		menu = selectedChild.id;
		//alert(menu);
		openSubMenu(getElement("menuTab_" + menu));
	}

	return true;
}

function closeMenuLevel(level)
{
	obj = getElement("menuTabs" + level);
	if(!obj)
		return;

	setChildNodeValues(obj, "UL", "className", '""');
}

calendarSelectedDay = null;
function calendarSetDay(date, linkId)
{
	oldObj = getElement(calendarSelectedDay);
	if(oldObj)
		oldObj.className = "";

	obj = getElement(linkId);
	if(!obj)
		return;

	obj.className = "selected";
	calendarSelectedDay = linkId;
	
}

chatTimeLogs = Array();
chatTimeIndex = 0;
submitKillTimeout = 0;
oldFormOnSubmit = "";

function sendChatMsg(chatWnd, theForm)
{
	obj = eval("theForm.text_" + chatWnd);
	timeLimit = 1000;

	if(!obj || obj.value.length == 0)
		return;

	now = new Date();
	chatTimeLogs[chatTimeIndex++%3] = now.getTime();

	// Time compare
	dif0_1 = chatTimeLogs[(chatTimeIndex)%3] - chatTimeLogs[(chatTimeIndex-1)%3];
	//dif1_2 = chatTimeLogs[(chatTimeIndex-1)%3] - chatTimeLogs[(chatTimeIndex-2)%3];

	setFormStatus(0, "chatForm", "submit_chat_" + chatWnd, "Spamskydd, du måste vänta i 1 sekund innan du skickar ett nytt meddelande");
	submitKillTimeout = setTimeout('setFormStatus(1, "chatForm", "submit_chat_' + chatWnd + '")', timeLimit);
	
	//alert((obj.value));
	//return;

	sndReq('t_ajax.php', 'chat', 'addLine', chatWnd, encodeURIComponent(obj.value), 1, timeLimit);
	obj.value = "";
	obj.focus();
}

function chatTabShift()
{
	// 1: First check if the new tab contains a chat
	parentObj = getElement("chatMainContainer");
	if(!parentObj)
		return;

	// 2: Okay, it does, lets find the element
	childs = parentObj.childNodes;
	for(var i = 0; i < childs.length; ++i)
	{
		theChild = childs[i];
		if(theChild.nodeName != "DIV")
			continue;

		if(theChild.id.substring(0,5) != "chat_")
			continue;

		chatName = theChild.id.substring(5);

		var divScroll = new chatscroll.Pane("chat_" + chatName);
		divScroll.activeScroll(1);
		chatUpdateStart(chatName);
		return;
	}


}

function chatUpdateStart(chatWnd)
{
	if(!getElement("text_" + chatWnd))
	{
		clearTimeout(chatRefreshTimeout);
		return;
	}

	delay = 4000;
	chatRefreshTimeout = setTimeout('chatUpdate(\'' + chatWnd + '\')',delay);
}

function chatUpdate(chatWnd)
{
	if(!getElement("text_" + chatWnd))
	{
		clearTimeout(chatRefreshTimeout);
		return;
	}


	var divScroll = new chatscroll.Pane("chat_" + chatName);
	divScroll.activeScroll(0);

	chatUpdateStart(chatWnd);
	sndReq('t_ajax.php', 'chat', 'refresh', chatWnd, 0, 1, 500);
}

function chatInputUpdate(chatWnd, theForm)
{
	obj = eval("theForm.text_" + chatWnd);
	if(!obj)
		return;

	maxLength = 500;
	currentLength = obj.value.length;	
}

function chatScrollDown(chatWnd)
{
	obj = getElement("chat_" + chatWnd);
	if(!obj)
		return;

	//if(!divScroll)
	var divScroll = new chatscroll.Pane("chat_" + chatWnd);
	divScroll.activeScroll();

	
	//alert(obj);
	//obj.scrollTop = obj.scrollHeight;
	//alert(obj.scrollTop);
}

function setFormStatus(open, formId, submitId, message, param)
{
	
	theForm = getElement(formId);
	if(!theForm)
		return;

	theSubmit = getElement(submitId);
	if(!theSubmit)
		return;

	if(open)
	{
		theForm.className = "";
		theForm.onsubmit = oldFormOnSubmit;
		theSubmit.onClick = "";
	}
	else
	{
		theForm.className = "disabled";
		oldFormOnSubmit = theForm.onsubmit;
		theForm.onsubmit = function() {alert(message);return false; }
		theSubmit.onClick = function() { alert(message); return false; }
		
	}
}
