function goToPage(page)
{
	adr = "index.php?page=" + page;
	window.location.replace(adr);
}

gBrowser = "";
function detectBrowser()
{	
	browser = navigator.appName;

	//detecting older netscapes
	if (!document.all)
		browser = "old netscape"
	else if(navigator.userAgent.indexOf("Opera") > -1)
		browser = "opera";
	else if (navigator.userAgent.indexOf("MSIE") > -1)
		browser = "ie";
	else if (navigator.appName == "Netscape" && document.all)
		browser = "netscape";
	else
		browser = "unknown";
	gBrowser = browser;
	return browser;
}


function isset(varname)
{
	res = (typeof( window[varname] ) != "undefined");
	if(res)
		return true;

	return eval("window." + varname) ? true : false;
}


function isFunction(a) 
{
	return typeof a == 'function';
}

function isObject(a) 
{
	return (typeof a == 'object' && !!a) || isFunction(a);
}

function isArray(a) 
{
	return isObject(a) && a.constructor == Array;
}



function setElementText(textObj, text)
{
	//textObj.childNodes[0] = "asd";
	if(!gBrowser)
		detectBrowser();

	//if(gBrowser == "ie" || gBrowser == "opera")
		textObj.innerHTML = text;
	/*else
	{
		//alert(newEl);
		textObj.removeChild(textObj.childNodes[0]);
		preface = textObj.childNodes[0];
		newEl = document.createElement(text);
	
		//textObj.appendChild(newEl);
		//textObj.childNodes[0].set("A");//alert(textObj.childNodes[0].setXMLValue);//textObj[0] = text;
		//alert(newEl);
	}*/
}

//////////////////
userBrowser = whichBrs();
function whichBrs()
{
	var agent = navigator.userAgent.toLowerCase();
	if(agent.indexOf("opera") != -1)				return 'Opera';
	if(agent.indexOf("staroffice") != -1)			return 'Star Office';
	if(agent.indexOf("beonex") != -1)				return 'Beonex';
	if(agent.indexOf("chimera") != -1)				return 'Chimera';
	if(agent.indexOf("netpositive") != -1)			return 'NetPositive';
	if(agent.indexOf("phoenix") != -1)				return 'Phoenix';
	if(agent.indexOf("firefox") != -1)				return 'Firefox';
	if(agent.indexOf("bonecho") != -1)				return 'Firefox';
	if(agent.indexOf("safari") != -1)				return 'Safari';
	if(agent.indexOf("skipstone") != -1)			return 'SkipStone';
	if(agent.indexOf("msie") != -1)					return 'Internet Explorer';
	if(agent.indexOf("netscape") != -1)				return 'Netscape';
	if(agent.indexOf("mozilla/5.0") != -1)			return 'Mozilla';
	if(agent.indexOf('\/') != -1)
	{
		if(agent.substr(0,agent.indexOf('\/')) != 'mozilla')
			return navigator.userAgent.substr(0,agent.indexOf('\/'));
		return 'Netscape';
	}
	else if (agent.indexOf(' ') != -1)
		return navigator.userAgent.substr(0,agent.indexOf(' '));
	else return navigator.userAgent;
}

////////////////////////

function showHideLayer(name, action)
{
	object = getElement(name);
	if(!object)
		alert("Objektet hittades inte");
	
	var state = "visible";
	if(action == "hide")
		state = "hidden";
	else if(action == "swap")
	{
		// This does not work correctly. The style attribute does only work inline (<div style="visibility: hidden;">)
		state = -1;
		state = object.style.visibility;

		if(state == -1) // No change
			return false;
		//alert(state);
		if(state == "hidden")
			state = "visible";
		else
			state = "hidden";
	}
	object.style.visibility = state;
}

function showHideLayerDisplay(name, action)
{
	object = getElement(name);
	var state = "block";
	if(action == "hide")
		state = "none";
	else if(action == "swap")
	{
		// This does not work correctly. The style attribute does only work inline (<div style="visibility: hidden;">)
		state = -1;
		state = object.style.display;

		if(state == -1) // No change
			return false;
		//alert(state);
		if(state == "none")
			state = "block";
		else
			state = "none";
	}
	object.style.display = state;
}

function getElement(name)
{
	if (document.getElementById)
		return document.getElementById(name);
	else if (document.all)
		return document.all[name];
	else if (document.layers)
		return document.layers[name];
	return -1;
}

function externalLinks()
{ 
	if (!document.getElementsByTagName)
		return; 
	
	var anchors = document.getElementsByTagName("a"); 
	for (var i = 0; i < anchors.length; i++)
	{ 
		var anchor = anchors[i]; 
		if(anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") 
			anchor.target = "_blank"; 
	}
}

var showVC = false;
var currentId = 0;

var vcPosx = 0;
var vcPosy = 0;

function ismaxlength(maxlength, obj)
{
	if (obj.getAttribute && obj.value.length > maxlength)
		obj.value = obj.value.substring(0, maxlength);

	// Update char counter for the label
	counterFieldName = "count_" + obj.id;
	labelFieldName = "lab_" + obj.id;


	counterUpdate = getElement(counterFieldName);
	if(!counterUpdate)
		counterUpdate = getElement(labelFieldName);
	
	if(counterUpdate)
	{
		if(counterUpdate.innerHTML == "")
			counterUpdate.origText = " ";
		if(!counterUpdate.origText)
			counterUpdate.origText = counterUpdate.innerHTML;

		counterUpdate.innerHTML = counterUpdate.origText + " (" + (maxlength - obj.value.length) + " tecken kvar)";
	}
}

function mailFormCheck(form)
{
	if(form.subject.value.length < 2)
	{
		alert("Ooops, du glömde skriva din rubrik");
		return false;
	}

	if(form.message.value.length < 2)
	{
		alert("Ooops, du glömde skriva ditt meddelande");
		return false;
	}

	if(form.contName.value.length < 2)
	{
		alert("Ooops, du glömde skriva ditt namn");
		return false;
	}

	if(form.contMail.value.length < 5)
	{
		alert("Ooops, du glömde skriva din epostadress");
		return false;
	}

	if(form.contPhone.value.length < 5)
	{
		alert("Ooops, du glömde skriva ditt telefonnummer");
		return false;
	}
	
	return true;
}

function validateUserReg(theForm, create)
{	
	if(!regAssert((theForm.firstName.value.length > 1), theForm.firstName, "Du måste ange ditt fullständiga förnamn!"))
		return false;

	if(!regAssert((theForm.lastName.value.length >= 1), theForm.lastName, "Du måste ange första bokstaven eller mer i ditt efternamn!"))
		return false;

	if(!validateEmail(theForm.email, theForm.email2))
		return false;

	if(create || theForm.password.value.length > 0)
	{
		if(!regAssert((theForm.password.value.length >= 5), theForm.password, "Ditt lösenord måste vara minst 5 tecken långt!"))
			return false;

		passwIdentical = (theForm.password.value == theForm.password2.value);
		if(!regAssert(passwIdentical, theForm.password, "Lösenorden är inte identiska, försök igen!"))
			return false;
	}

	if(!regAssert((theForm.birthMonth.value != -1), theForm.birthMonth, "Du måste välja födelsemånad!"))
		return false;

	if(!regAssert((theForm.birthDay.value != -1), theForm.birthDay, "Du måste välja födelsedag!"))
		return false;

	if(!regAssert((theForm.postalCode.value.length == 5), theForm.postalCode, "Du måste ange ditt postnummer!"))
		return false;

	
	return true;
}

function regAssert(statement, obj, message)
{
	if(statement)
		return true;

	if(obj)
	{
		resetFormElementBorders(obj.form);
		obj.borderColorOrig = obj.style.borderColor;
		obj.backgroundColorOrig = obj.style.backgroundColor;
		obj.style.borderColor = "rgb(255,0,0)";
		obj.style.backgroundColor = "rgb(255,210,210)";
	}
	alert(message);
	return false;
}

function validateEmail(email1, email2)
{
	if(!regAssert(emailPatternCheck(email1.value), email1, "Du måste ange din epostadress!"))
		return false;

	if(!regAssert((email2.value.length > 3), email2, "Du måste ange din epostadress igen!"))
		return false;

	if(!regAssert((email1.value == email2.value), email2, "Epostadresserna är inte identiska!"))
		return false;

	//if(!echeck(emailAdr))
	//	return false
	return true
}

function emailPatternCheck(str)
{
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)

		
	if(str.indexOf(at)==-1)
		return false;

	if(str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
		return false;

	if(str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
		return false;

	if(str.indexOf(at,(lat+1))!=-1)
		return false;

	if(str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
		return false;

	if(str.indexOf(dot,(lat+2))==-1)
		return false;

	if(str.indexOf(" ")!=-1)
		return false;
		
	return true					
}

function resetFormElementBorders(theForm)
{
	for(i=0; i < theForm.elements.length; i++)
	{
		theObj = theForm.elements[i];

		if(theObj.borderColorOrig != undefined)
			theObj.style.borderColor = theObj.borderColorOrig;

		if(theObj.backgroundColorOrig != undefined)
			theObj.style.backgroundColor = theObj.backgroundColorOrig;
	}
}

function pageScroll(yUnits)
{
	horUnits = 0;
    window.scrollBy(horUnits,yUnits);
}

function getArgs()
{ 
	var args = new Object(); 
	var query = location.search.substring(1); 
	var pairs = query.split("&"); 
	for(var i = 0; i < pairs.length; i++)
	{ 
		pos = pairs[i].indexOf('='); 
		if(pos == -1)
			continue; 
		argname = pairs[i].substring(0,pos); 
		value = pairs[i].substring(pos+1); 
		args[argname] = unescape(value); 
	} 
	return args; 
}

function atConvert(objName)
{
	if(!objName)
		objName = "epost";

	obj = getElement(objName);
	if(!obj)
		return;

	obj.innerHTML = obj.innerHTML.replace(/ \[snabel-a\] /g,'@');
	obj.innerHTML = obj.innerHTML.replace(/\[snabel-a\]/g,'@');
}

function postalCodeUpdate(theObject, create)
{
	// Remove space
	if(theObject.value[theObject.value.length-1] == " ")
	{
		theObject.value = theObject.value.substring(0, theObject.value.length-1);
	}


	theValue = theObject.value;
	

	theForm = theObject.form;

	itemName = theForm.firstName.value;
	receiverObjName = "count_" + theObject.id;

	if(theObject.oldVal && theObject.oldVal == theValue)
		return;


	theObject.oldVal = theValue;

	// Comment city
	if(theValue.length == 5)
	{
		sndReq("t_ajax.php", receiverObjName, "getCity", theValue, itemName, create);
	}
	else
	{
		receiverObj = getElement(receiverObjName);
		if(receiverObj)
			receiverObj.innerHTML = "";
	}
	
}

function validateContactForm(theForm)
{
	if(theForm.subject.value.length < 2)
	{
		alert("Du måste skriva en rubrik");
		return false;
	}

	if(theForm.message.value.length < 2)
	{
		alert("Ditt meddelande är tomt");
		return false;
	}

	if(theForm.contName.value.length < 2)
	{
		alert("Du måste skriva ditt namn");
		return false;
	}

	if(theForm.contMail.value.length < 5)
	{
		alert("Du måste ange din epostadress");
		return false;
	}

	/*if(theForm.contPhone.value.length < 5)
	{
		alert("You have to enter your phone number");
		return false;
	}*/
	
	return true;
}

function validateBlog(theForm)
{
	if(theForm.subject.value.length < 2)
	{
		alert("Du måste skriva en rubrik");
		return false;
	}

	if(theForm.text.value.length < 2)
	{
		alert("Ditt meddelande är tomt");
		return false;
	}

	return true;
}

function validateComment(theForm)
{
	if(theForm.text.value.length < 2)
	{
		alert("Ditt meddelande är tomt!");
		return false;
	}

	return true;
}

function validateImageAdmin(theForm)
{
	if(!regAssert((theForm.name.value.length > 0), theForm.name, "Bilden måste ha en titel!"))
		return false;

	return true;
}

function validateImageCatAdmin(theForm)
{
	if(!regAssert((theForm.name.value.length > 0), theForm.name, "Bilden måste ha en titel!"))
		return false;

	return true;
}
