/*
	Script-file for default functions needed on all sites
*/


function strpos (haystack, needle, offset) {
	// http://kevin.vanzonneveld.net
	// +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +   improved by: Onno Marsman    
	// +   bugfixed by: Daniel Esteban
	// *     example 1: strpos('Kevin van Zonneveld', 'e', 5);
	// *     returns 1: 14

	var i = (haystack+'').indexOf(needle, (offset ? offset : 0));
	return i === -1 ? false : i;
}

function replaceT(obj){
	var newO=document.createElement('input');
	newO.setAttribute('type','password');
	newO.setAttribute('name',obj.getAttribute('name'));
	newO.setAttribute('id',obj.getAttribute('id'));											
	newO.setAttribute('tabindex',obj.getAttribute('tabindex'));																						
	obj.parentNode.replaceChild(newO,obj);
	newO.focus();
}			

function RemoveConsecutiveValues(strString, strConValue){
	while (strString.indexOf(strConValue + strConValue) >= 0)
		strString = strString.replace(strConValue + strConValue, strConValue);
	return strString;
}	
	
function stripslashes(str) {

	// +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +   improved by: Ates Goral (http://magnetiq.com)
	// +      fixed by: Mick@el
	// +   improved by: marrtins
	// +   bugfixed by: Onno Marsman
	// +   improved by: rezna
	// +   input by: Rick Waldron
	// +   reimplemented by: Brett Zamir (http://brett-zamir.me)
	// *     example 1: stripslashes('Kevin\'s code');
	// *     returns 1: "Kevin's code"
	// *     example 2: stripslashes('Kevin\\\'s code');
	// *     returns 2: "Kevin\'s code"
	return (str+'').replace(/\\(.?)/g, function (s, n1) {
		switch(n1) {
		    case '\\':
			return '\\';
		    case '0':
			return '\0';
		    case '':
			return '';
		    default:
			return n1;
		}
	});

}

	
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function ad_pretext() {}

function ad_posttext() {}

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = ";expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+";";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}
function deleteCookie(name)
{
	document.cookie = name + "=" + "del;expires=Thu, 01-Jan-1970 00:00:01 GMT;";
}

function getPos(el,sProp) {
  var iPos = 0
  while (el!=null) {
    iPos+=el["offset" + sProp]
    el = el.offsetParent
  }
  return iPos
}
 

var m_x; var m_y;
if( document.captureEvents )
	document.captureEvents(Event.MOUSEDOWN);
document.onmousedown = getMouseXY;

function findPosX(obj)
{
	var curleft = 0;
	if(obj.offsetParent)
	while(1) 
	{
		curleft += obj.offsetLeft;
		if(!obj.offsetParent)
			break;
		obj = obj.offsetParent;
	}
	else if(obj.x)
		curleft += obj.x;
	return curleft;
}
function findPosY(obj)
{
	var curtop = 0;
	if(obj.offsetParent)
	while(1)
	{
		curtop += obj.offsetTop;
		if(!obj.offsetParent)
			break;
		obj = obj.offsetParent;
	}
	else if(obj.y)
		curtop += obj.y;
	return curtop;
}
function getMouseXY(e)
{
	if( document.captureEvents )
	{
		m_x = e.pageX;
		m_y = e.pageY;
	}
	else if (event.clientX)
	{
		m_x = event.clientX + (window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0);
		m_y = event.clientY + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0);
	}
	return true;
}
function centerPage(type)
{
	if( !$('topLeftSite') )
		return 0;
	if( type == "x" )
		return findPosX($('topLeftSite'));
	else if( type == "y" )
		return findPosY($('topLeftSite'));
}

	var searchTerms=null;
	function parseReferrer(term) {
		var ref = document.referrer.split('?');
		var parms = ref[1].split('&');
		for (var i=0; i < parms.length; i++) {
			var pos = parms[i].indexOf('=');
			if (pos > 0) {
				if(term == parms[i].substring(0,pos))
					searchTerms  = parms[i].substring(pos+1);
			}
		}
	} 


	function locateSearchTerms(){
		terms = searchTerms;
		if (terms.indexOf('+') > -1){
			var parms = terms.split('+');	
			for (var i=0; i < parms.length; i++) {
				highlightSearchTerms(parms[i]);
			}		
		}
		else{
				highlightSearchTerms(terms);			
		}
	}

	function highlightSearchTerms(sword) {
		$$('body').map(Element.extend).first().descendants().each(function (el) {
			if (el.nodeType == Node.ELEMENT_NODE && el.tagName != 'TEXTAREA' && el.tagName != 'INPUT' && el.tagName != 'SCRIPT') {
				$A(el.childNodes).each(function (onlyChild) {
				        var pos = onlyChild.textContent.indexOf(sword);
				        if (onlyChild.nodeType == Node.TEXT_NODE && pos >= 0) {
				                //console.log(onlyChild);
				                var spannode = document.createElement('span');
				            spannode.className = 'searchHighlight';
				            var middlebit = onlyChild.splitText(pos);
				            var endbit = middlebit.splitText(sword.length);
				            var middleclone = middlebit.cloneNode(true);
				            spannode.appendChild(middleclone);
				            middlebit.parentNode.replaceChild(spannode, middlebit);

				                //onlyChild. = el.innerHTML.replace(new RegExp('('+sword+')', 'gi'), '<span class="highlight">$1</span>');
				        }
				});
			}
		});
	}


	document.observe('dom:loaded', function() {
		if(document.referrer != ''){

			if (document.referrer.indexOf('google.com') > -1){
				searchQueryVar = 'q';
				parseReferrer(searchQueryVar);			
				locateSearchTerms();						
			}
			else if (document.referrer.indexOf('google.no') > -1){
				searchQueryVar = 'q';
				parseReferrer(searchQueryVar);			
				locateSearchTerms();						
			}			
			else if (document.referrer.indexOf('yahoo.com') > -1){
				searchQueryVar = 'p';
				parseReferrer(searchQueryVar);			
				locateSearchTerms();			
			}
			else if (document.referrer.indexOf('kvasir.no') > -1){
				searchQueryVar = 'q';
				parseReferrer(searchQueryVar);			
				locateSearchTerms();			
			}

		}
	});
