/*
*
* general js for orrensjo.com by Ragnar Seton of dm9.se
*
*/

/* i miss the trim func in js! */
String.prototype.trim=function()
{
	return (this.replace(/\s+/g,'')).replace(/\s+$/g,'');
}
	
/* assume gebi support */
var gebiSupport=true;
/* and test it. */
if(!document.getElementById)
{
	var gebi=(document.layers?document.layers:document.all);
	gebiSupport=false;
}

var ns4=(navigator.appName.indexOf("Netscape")>=0 && !gebiSupport) ? true : false;
var ns6=(navigator.appName.indexOf("Netscape")>=0 && gebiSupport) ? true : false;
var ie4=(document.all && !gebiSupport) ? true : false;
var ie5=(document.all && gebiSupport) ? true : false;

function getElement(idt)
{
	if(gebiSupport) return document.getElementById(idt);
	else return gebi[idt];
}
function insertHTML(strId,html)
{
	var box=getElement(strId);
	if(ns4)
	{
		box.document.open();
		box.document.write(html);
		box.document.close();
	}
	else if(gebiSupport||ie4) box.innerHTML=html;
}

/*
* slightly modyfied version of Scott Andrew's
* cross browser event handler, see
* http://www.scottandrew.com/weblog/articles/cbs-events
* for original version.
*/
function addEvent(obj, evType, fn)
{
	var r=null;
	if(obj.addEventListener)
	{
		obj.addEventListener(evType, fn, true);
		return true;
	}
	else if(obj.attachEvent)
	{
		r=obj.attachEvent("on"+evType, fn);
		return r;
	}
	else return false;
}

function valiDate(str,ahead)
{
	if(!/^\d{4}\-\d{2}\-\d{2}$/.test(str)) return false;
	var dateArr=str.split("-");
	var today=new Date();
	/* plus and minus since the months are indexed 0 thru 11 */
	var dateObj=new Date(dateArr[0],(dateArr[1]-1),dateArr[2]);
	return (dateArr[0]==dateObj.getFullYear() &&
					dateArr[1]==(dateObj.getMonth()+1) &&
					dateArr[2]==dateObj.getDate() &&
					(!ahead || (dateObj > today)));
}

/* gbentry */
function verifyGbookEntry()
{
	var dfe=document.forms['gbookentry'].elements;
	var err=new Array();
	/* regexps for verifying the values */
	var RXmail=/^[\w\.\-]+@{1}[\w\.\-]+\.[a-zA-Z\.]{2,7}$/;
	
	/* verify the values in the form */
	if(dfe['author'].value.trim().length<3) err.push(dfe['author']);
	else dfe['author'].style.backgroundColor='#efefef';
	if(dfe['private'].value>0 || dfe['showmail'].value>0 || dfe['mail'].value.trim().length>0)
	{
		if(!RXmail.test(dfe['mail'].value.trim()) || dfe['mail'].value.trim().length>64)
			err.push(dfe['mail']);
		else
		{
			dfe['mail'].value=dfe['mail'].value.trim();
			dfe['mail'].style.backgroundColor='#efefef';
		}
	}
	if(dfe['comment'].value.trim().length<3) err.push(dfe['comment']);
	else dfe['comment'].style.backgroundColor='#efefef';
	
	if(err.length)
	{
		for(i=0; i<err.length; i++) err[i].style.backgroundColor='#ff0000';
		alert("Du måste fylla i alla fälten korrekt, var vänlig rätta till de rödmarkerade.");
		return false;
	}
	return true;
}
function privateClick(check)
{
	var dfe=document.forms['gbookentry'].elements;
	
	dfe['showmail'].checked=check;
	dfe['showmail'].disabled=check;
}
function checkboxclick(strId)
{
	if(/checked/.test(getElement(strId+'img').src))
	{
		getElement(strId+'img').src='img/checkbox.gif';
		getElement(strId).value=0;
	}
	else
	{
		getElement(strId+'img').src='img/checkbox_checked.gif';
		getElement(strId).value=1;
	}
}