﻿/* --------------------------------------------------------------------------------
DESCRIPTION:	Gets a cookies value if exists
PARAMETERS:	cookieName - Cookies name
-------------------------------------------------------------------------------- */ 

function getCookie(cookieName) {
	if (document.cookie.length>0) {
	cookieStart=document.cookie.indexOf(cookieName + "=");
	// if cookie exists
		if (cookieStart!=-1) { 
			cookieStart=cookieStart + cookieName.length+1; 
			// set index of beginning of value
			cookieEnd=document.cookie.indexOf(";",cookieStart);
			// set index of end of cookie value
			if (cookieEnd==-1) cookieEnd=document.cookie.length;
			return unescape(document.cookie.substring(cookieStart,cookieEnd));
		} 
	}
	return "";
}

/* --------------------------------------------------------------------------------
DESCRIPTION:	Sets a cookie
PARAMETERS:	cookieName - Cookies name
		value - Cookies value
-------------------------------------------------------------------------------- */ 

function setCookie(cookieName,value) {
	document.cookie=cookieName+ "=" +escape(value);
}

/* --------------------------------------------------------------------------------
DESCRIPTION:	Checks if cookie exists
PARAMETERS:	cookieName - Cookies name
		value - Cookies value
-------------------------------------------------------------------------------- */ 

function checkCookie(cookieName,value) {
	cookie=getCookie(cookieName);
	// if cookie exists, return cookie value
	if (cookie==value) return cookie;
	// else set cookie
	else {
		setCookie(cookieName,value);
		return "";
	}
}

/* --------------------------------------------------------------------------------
DESCRIPTION:	Validates string with regular expression
PARAMETERS:	str - string containing reg exp variable name (must be created)
		strValue - Source string to check
RETURNS:	true or false
-------------------------------------------------------------------------------- */ 

function validateWithRegExp(str,strValue) {
	var email = "^[a-z0-9_\-]([a-z0-9_\.\-]*)@([a-z0-9_\.\-]*)(\.[a-z]+)$";
	var fileName = "^[a-zäöåA-ZÄÖÅ0-9 _\,\.\!\(\)\+\-]+\.[a-zA-Z0-9_]*$";
	var fileEasyName = "^[a-zäöåA-ZÄÖÅ0-9 _\,\.\!\(\)\+\-]+$";
	var postCode = "^[0-9]{5}$";
	var space = "^[^ \f\n\r\t\v\u00A0\u2028\u2029]+$";

	var regularExpression = new RegExp(eval(str));
	/* debug code 
	alert(str);
	alert(strValue);
	alert(regularExpression);
	alert(regularExpression.test(strValue));
	*/
	return regularExpression.test(strValue);
}

/* --------------------------------------------------------------------------------
DESCRIPTION:	Preloads images
PARAMETERS:	str - string containing reg exp variable name (must be created)
		strValue - Source string to check
RETURNS:	preloaded images
-------------------------------------------------------------------------------- */ 

function preloadImages(imagesURI) {
	var images = new Array;
	for (var i=0; i<imagesURI.length; i++){
                if (imagesURI[i][0]!='') {
			images[i] = new Image(imagesURI[i][1],imagesURI[i][2]);
			images[i].src = imagesURI[i][0];
		}
	}
	return (images);
}

/* --------------------------------------------------------------------------------
DESCRIPTION:	Changes elements display style to block
PARAMETERS:	elementId - elements id
-------------------------------------------------------------------------------- */ 

function displayBlock(elementId) {
	document.getElementById(elementId).style.display = "block";
}

/* --------------------------------------------------------------------------------
DESCRIPTION:	Toggles elements display style (block or none}
PARAMETERS:	elementId - elements id
-------------------------------------------------------------------------------- */ 

function toggleDisplay(elementId) {
	if (document.getElementById(elementId).style.display == "none") document.getElementById(elementId).style.display = "block";
	else document.getElementById(elementId).style.display = "none";
}

function appearElement(elementId) {
  Effect.Appear(elementId, { duration: 0.5 } );
}

function fadeElement(elementId) {
  Effect.Fade(elementId, { delay: 0.5, duration: 0.25 } );
}

function setBackground(elementId,imageSrc) {
	document.getElementById(elementId).style.backgroundImage = "url(" + imageSrc + ")";
}

function clearBackground(elementId) {
	document.getElementById(elementId).style.backgroundImage = "none";
}

function displayFrontpageFlash(elementId) {
	if (checkCookie("visited","true")!="true") appearElement(elementId);
	else return false;
}

/* --------------------------------------------------------------------------------
DESCRIPTION:	Checks search form input
-------------------------------------------------------------------------------- */ 

function validateSearchFrom(el){
	var wrd = el.word.value;
	if (wrd.length < 3){
		alert(minWordLength);
		return false;
	}
	return true;
}