/*
*	(C) Webbfabriken.com 2008
*	Some code are opensource and some isn't. 
*	If you find any error in this code please let me know.
*/
var messageOutOfStock="<div class='messageBoxText'><h1><br>Varan har inte lagts i din varukorg.</h1></div><div class='messageBoxBtn'><a onClick=hideLayer('messageBox'); style='cursor:pointer;cursor:hand;' title='Stäng fönstret'>stäng</a></div></div>"

var js = {
	Version: '3.1',
	addEvent: function(_elem, _event, _function, _capture){
		if(_elem.addEventListener){
			_elem.addEventListener(_event, eval(_function), _capture);
			return true;
		}
		else if(_elem.attachEvent){
			var r = _elem.attachEvent('on' + _event, eval(_function));
			return r;
		}
		else _elem['on' + _event] = _function;
	},

	removeEvent: function(_elem, _event, _function){
		if(_elem.removeEventListener){
			_elem.removeEventListener(_event, eval(_function), true);
			return true;
		}
		else if(_elem.detachEvent){
			var r = _elem.detachEvent('on' + _event, eval(_function));
			return r;
		}
		else _elem['on' + _event] = null;
	},

	createElement: function(_elemTagName, _elemObj){
		var elem = document.createElement(_elemTagName);
		for(var attr in _elemObj){
			if(attr == "event"){
				if(typeof _elemObj[attr] == "object"){
					for(var evt in _elemObj[attr]){
						if(_elemObj[attr][evt].func) js.util.addEvent(elem, evt, _elemObj[attr][evt].func, _elemObj[attr][evt].capture);
					}
				}else js.util.addEvent(elem, _elemObj[attr][0], _elemObj[attr][1], _elemObj[attr][2]);
			}else if(attr == "cssText" || attr == "style") elem.style.cssText = _elemObj[attr];
			else if(attr == "className" || attr == "class") elem.className = _elemObj[attr];
			else if(attr == "innerHTML" || attr == "content"){
				if(typeof _elemObj[attr] == "object") elem.appendChild(_elemObj[attr]);
				else elem.innerHTML = _elemObj[attr];
			}else elem.setAttribute(attr, _elemObj[attr]);
		}
		return elem;
	},

	docss: function(_class, _attrib, _value){
		var cssRules = (document.all) ? 'rules' : (document.getElementById) ? 'cssRules' : '';
		if(!cssRules) return;
		for(var i=0; i<document.styleSheets.length; i++){
			var oss = document.styleSheets[i][cssRules];
			for(var e=0; e<oss.length; e++){
				if(oss[e].selectorText == _class){
					if(_value){
						oss[e].style[_attrib] = _value;
						break;
					}else return oss[e].style[_attrib];
				}
			}
		}	
	}
};


function init() {
    if (arguments.callee.done) return;
    arguments.callee.done = true;
    if (_timer) clearInterval(_timer);
		getNewWindowLinks();
		waitPreloadPage(); // funktion finns i common.js 2008
};
if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", init, false);
}
if (/WebKit/i.test(navigator.userAgent)) {
    var _timer = setInterval(function() {
        if (/loaded|complete/.test(document.readyState)) {  //wait until page has been loaded before calling the init sub.
            init();
        }
    }, 10);
}
window.onload = init;
var xmlHttp=null;


function fnTest4Ajax(url){
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp!=null) {
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
}


function GetXmlHttpObject(){
	try{
	  xmlHttp=new XMLHttpRequest();
	}
	catch (e){
	  try{
	    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	  }
	  catch (e){
	    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	  }
	}
		return xmlHttp;
}
function fn_errorDialog(errormessage) {
	div_dBack('div_dBack');
	dOpen(errormessage,'messageBox','Fel',true);	
	return false;
}								 

function handle_request(handle) {
	if (handle.readyState != 4) {
		return;
	}  
   if (handle.status && handle.status != 200) {
		fn_errorDialog('Servern returnerade felkod ' + handle.status );
	  return;
   }
	document.getElementById('ajaxdata').innerHTML = handle.responseText;
}


function runThePingProgram(urlToPing,sParamsToPing)
  { 
	xmlHttp=GetXmlHttpObject();
	xmlHttp.onreadystatechange=fnPingClient_StateChanged;
	xmlHttp.open("GET",urlToPing,true);
	xmlHttp.send(null);
	return false;
}

function fnPingClient_StateChanged () {
	if (xmlHttp.readyState==4) {
		var sResponseText = xmlHttp.responseText;
		var aResponseText = xmlHttp.responseText.split("+");
		var sValue0=aResponseText[0];
		var sValue1=aResponseText[1];
		var sValue2=aResponseText[2];
		var sValue3=aResponseText[3];
		//var sInfoPaneNow=document.getElementById("informationPane").innerHTML;
		//document.getElementById("informationPane").innerHTML="Besökare: "+sValue3+" [p#"+sInfoPaneNow+"]";
		if (sValue2==2) {
			showLayer('cartInfoBox');
			document.getElementById("cartQuant").innerHTML=sValue0;
			document.getElementById("cartTotal").innerHTML=sValue1;
		} else {
			hideLayer('cartInfoBox');
		}
	  return;
	}
  return false;
}
var iCounter=0;
sTexter = new Array;
sTexter[1]="Välkommen till Inreda.coms nya butik på nätet..";
sTexter[2]="vi hoppas ni kommer gilla vår nya sajt";
sTexter[3]="du kan tycka till om sajten ... och hjälpa oss förbättra och förenkla";
sTexter[4]="Vi har just nu 3198 produkter i vår shop";
sTexter[5]="du har väl inte missat att vi har öppnat en butik? Bseök oss nu för att känna och klämma";
sTexter[6]="våra frakter inom Sverige är 69 kr";
sTexter[7]="frakt till andra länder kostar ca 200 kr (till Norge tillkommer en tullavgift)";
sTexter[8]="Svårt att hitta varor? Kolla vår supersökare som hjälper dig hitta vad du letar efter";
sTexter[9]="status på min order? Ja du kan se status på din order via den länk du får i orderbekräftelsen";
sTexter[10]="har du konto hos oss kan du logga in och se din historik";
sTexter[11]="har du frågor kan du använda vår livechat och chatta med oss";

function doPingClient() {
  runThePingProgram('clientping.asp','X3CAZ84CSMF1ORWH9DE');
  iCounter=iCounter+1;
  document.getElementById("informationPane").innerHTML=iCounter;
  //if (iCounter<12) {document.getElementById("shop_info_text").innerHTML=sTexter[iCounter];}
  //if (iCounter>11) {document.getElementById("shop_info_text").innerHTML='';}
  setTimeout(doPingClient,10000);
}



function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}


function showSel() {
	selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {		selects[i].style.visibility = "visible"; 	}
}

function hideSel() {
	selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {		selects[i].style.visibility = "hidden";	}
}

function div_dBack() {

	var bgDiv = document.createElement("div");
	bgDiv.setAttribute("class", "div_dBack");
	bgDiv.setAttribute("id","div_dBack");

	var my_div3 = document.getElementById("messageContainer");
	my_div3.appendChild(bgDiv);

	if (bgDiv) {
		var height = document.getElementsByTagName('body')[0].clientHeight;
		bgDiv.style.height	= height + 'px';
		bgDiv.style.display	= 'block';	
	}
}


function setDefault(name,val) {
	if (typeof(window[name])=="undefined" || window[name]==null) {
		window[name]=val;
	}
}


function divpopups(szDivID, iState) 
{
	if(document.layers)	
	{
		document.layers[szDivID].visibility = iState ? "show" : "hide";
	}
	else if(document.getElementById)	 
	{
		var obj = document.getElementById(szDivID);
		obj.style.visibility = iState ? "visible" : "hidden";
	}
	else if(document.all)	
	{
		document.all[szDivID].style.visibility = iState ? "visible" : "hidden";
	}
}


function getNewWindowLinks() {
	if (document.getElementById && document.createElement && document.appendChild) {
		var strNewWindowAlert = "";
		var sLinks = document.getElementsByTagName('a');
		var objWarningText;
		var link;
		for (var i = 0; i < sLinks.length; i++) {
			link = sLinks[i];
			if (link.className == "add2cart") {
				link.onclick = add2cart;
			}else if (link.className == "getCode") {
				link.onclick = fnGetRebateCodeFromDB;
			}else if (link.className == "dialogShow") {
				link.onclick = showdialogShow;
			}else if (link.className == "showDialogTipFriend") {
				link.onclick = showDialogTipFriend;
			}else if (link.className == "voteOneStar" || link.className == "vote2Star" || link.className == "vote3Star" || link.className == "vote4Star" || link.className == "vote5Star") {
				link.onclick = starvote;
			}
		}
		objWarningText = null;
	}
}

function fnGetRebateCodeFromDB() {
	var theCodeurl = this.getAttribute('href');
	var theParams = document.getElementById("fCode").value;
	if (theParams!="") { 
	code_xmlHttp=GetXmlHttpObject();
	code_xmlHttp.onreadystatechange=processCode;
	code_xmlHttp.open("GET",theCodeurl+'?CODE='+theParams,true);
	code_xmlHttp.send(null);
	}else{
		document.getElementById("codeRebate").innerHTML="&nbsp;";
	}
	return false;
}

function processCode() {
	if (code_xmlHttp.readyState==4) {
		var sReturnData=code_xmlHttp.responseText;
		if (sReturnData == "STATUS:CODE_FOUND"){
			document.getElementById("codeRebate").innerHTML="Rabattkoden hittades och används nu. Koden är inte förbrukad förrän din order gått igenom.";
		} else if (sReturnData == "STATUS:CODE_NOT_FOUND"){
			document.getElementById("codeRebate").innerHTML="Rabattkod hittades inte.";
		}
		return sReturnData;
	}
}

function add2cart() {
	try {
		alert
		var strCartUrl=this.getAttribute('href');
		var pID=this.getAttribute('attr');				//alert("cUm "+pID);

		try { 
			var quantity="ipQuant"+pID; //alert('cum = '+quantity);
			var dettaForm=document.product_form;
			var value=dettaForm.quantity
			//var sQuantityToShop =dettaForm.ipQuant9177.value;
			//var sQuantityToShop=document.forms[this.formname].elements['ipQuant'+pID].value
			var sQuantityToShop =dettaForm.elements['ipQuant'+pID].value
			}
		
		catch(err)	{
			txt="Ajaxerror.\n\n";
			txt+="Error: " + err.description + "\n\n";
			alert(txt);
			var sQuantityToShop = 1;
			}
		
		//alert("sQuantityToShop="+sQuantityToShop);
		strCartUrl = strCartUrl +"&_cIQ="+sQuantityToShop
		xmlHttp=GetXmlHttpObject();
		xmlHttp.onreadystatechange=fnUpdateCartData;
		xmlHttp.open("GET",strCartUrl,true);
		xmlHttp.send(null);
		return false;
	}
	catch(error) { alert("script error on page!"); }
}

function fnUpdateCartData() {
	if (xmlHttp.readyState==4) {
		var sResponseText = xmlHttp.responseText;
		var aResponseText = xmlHttp.responseText.split("+");
		var sValue0=aResponseText[0];
		var sValue1=aResponseText[1];
		var sValue2=aResponseText[2];
		var sValue3=aResponseText[3];
		var sValue4=aResponseText[4];
		var sValue5=aResponseText[5];
		if (sResponseText == "STATUS:out-of-stock"){
			dPosition('messageBox')
			document.getElementById("messageBox").innerHTML="<div class='messageBoxText'><h1>Varan har tagit slut. Varan har inte lagts till din order.</h1></div><div class='messageBoxBtn'><a onClick=hideLayer('messageBox'); style='cursor:pointer;cursor:hand;' title='Stäng fönstret'>st&auml;ng</a></div></div>";
			showLayer('messageBox');
		} else if (sResponseText == "STATUS:to-many-items"){
			dPosition('messageBox')
			document.getElementById("messageBox").innerHTML="<div class='messageBoxText'><h1>Vi har inte fler varor i lager. Du kan inte lägga fler av denna vara din order.</h1></div><div class='messageBoxBtn'><a onClick=hideLayer('messageBox'); style='cursor:pointer;cursor:hand;' title='Stäng fönstret'>st&auml;ng</a></div></div>";
			showLayer('messageBox');
		}else{
			dPosition('messageBox')
			document.getElementById("messageBox").innerHTML="<div class='messageBoxText'><h1>Du har nu lagt "+sValue4+" st av "+sValue0+" till din order</h1></div><div class='messageBoxBtn'><a onClick=hideLayer('messageBox'); style='cursor:pointer;cursor:hand;' title='Stäng fönstret'>st&auml;ng</a></div></div>";
			showLayer('messageBox');
			if (document.getElementById('cartQuant')) { document.getElementById("cartQuant").innerHTML=sValue3 };
			if (document.getElementById('cartTotal')) { document.getElementById("cartTotal").innerHTML=sValue2 };
		}
	}
}


//SHOW HIDE DIVS 
function showHide(id){
	el = document.getElementById(id);
	//el.style.display='none';
	el.style.display = (el.style.display != 'block')? 'block' : 'none';
}

function hidediv(id){
	el = document.getElementById(id);
	el.style.display='none';
}

function showdiv(id){
	el = document.getElementById(id);
	el.style.display='block';
}

function URLEncode (strURL2encode) {
  var sOutput = '';
  var x = 0;
  strURL2encode = strURL2encode.toString();
  var regex = /(^[a-zA-Z0-9_.]*)/;
  while (x < strURL2encode.length) {
    var match = regex.exec(strURL2encode.substr(x));
    if (match != null && match.length > 1 && match[1] != '') {
    	sOutput += match[1];
      x += match[1].length;
    } else {
      if (strURL2encode[x] == ' ')
        sOutput += '+';
      else {
        var charCode = strURL2encode.charCodeAt(x);
        var hexVal = charCode.toString(16);
        sOutput += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
      }
      x++;
    }
  }
  return sOutput;
}

	
function dPosition_O(dThisValue) {
	
	var messageBox = document.getElementById(dThisValue);
	messageBox.style.top  = 300  + 'px';
	messageBox.style.left  = 400 + 'px';

}

function dPosition(dThisValue) {
	var messageBox = document.getElementById(dThisValue);
	if (messageBox) {
		var sSizeOfView   = getViewportSize();
		var sSizeToScroll = getScrollOffset();
		//messageBox.style.display = 'block';
		messageBox.style.left = (sSizeToScroll.x + (sSizeOfView.width  - messageBox.clientWidth)  / 2) + 'px';
		var marginTop = messageBox.clientHeight>sSizeOfView.height ? ((sSizeOfView.height-messageBox.clientHeight)/2):100;
    	var top = (sSizeToScroll.y + ((sSizeOfView.height - messageBox.clientHeight) / 2) - marginTop);

		if (top>sSizeToScroll.y) {
		    messageBox.style.top  = top  + 'px';    
		} else {
		    messageBox.style.top  = sSizeToScroll.y  + 'px';    		 		
		}
	}
}

function getViewportSize() {
    size = {};
    if (typeof window.innerWidth != 'undefined') {
    	size.width  = window.innerWidth;
    	size.height = window.innerHeight;
    } else if (typeof document.documentElement != 'undefined'
     && typeof document.documentElement.clientWidth !=
     'undefined' && document.documentElement.clientWidth != 0) 
	{
    	size.width  = document.documentElement.clientWidth;
    	size.height = document.documentElement.clientHeight;
    } else  {
    	size.width  = document.getElementsByTagName('body')[0].clientWidth;
    	size.height = document.getElementsByTagName('body')[0].clientHeight;
    }
	return size;
}

function getScrollOffset() {
    scrollOffset = {};
    if (window.pageYOffset) {
    	scrollOffset.x = window.pageXOffset;
    	scrollOffset.y = window.pageYOffset;
    }
    else if (document.documentElement && document.documentElement.scrollTop) {
    	scrollOffset.x = document.documentElement.scrollLeft;
    	scrollOffset.y = document.documentElement.scrollTop;
    }
    else if (document.body) { 
    	scrollOffset.x = document.body.scrollLeft;
    	scrollOffset.y = document.body.scrollTop;
    }
    return scrollOffset;
}

