function array_key_exists ( key, search ) {
// http://kevin.vanzonneveld.net
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// * example 1: array_key_exists('kevin', {'kevin': 'van Zonneveld'});
// * returns 1: true
 
// input sanitation
if( !search || (search.constructor !== Array && search.constructor !== Object) ){
return false;
}
return search[key] !== undefined;
}


/* Webshop JS */
function show(obj)
{
dropmenuobj.style.left=dropmenuobj.style.top=-500
obj.display='block'
}

function show_info(obj, dropmenuID, left, top)
{
if(typeof dropmenuobj!="undefined") //hide previous menu
dropmenuobj.style.display="none"

if(ie5||ns6)
{
dropmenuobj=document.getElementById(dropmenuID)
show(dropmenuobj.style)
if(left && top)
{
dropmenuobj.x=left
dropmenuobj.y=top
}
else
{
dropmenuobj.x=getposOffset(obj, "left")
dropmenuobj.y=getposOffset(obj, "top")
}
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+"px"
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+"px"
}
}

function validateCartData(obj, prod_id)
{
if(array_key_exists(prod_id, inputs) && inputs[prod_id].length)
{
var msg = [];
 
for(var i = 0; i < inputs[prod_id].length; i++)
{
if(inputs[prod_id][i]['is_required'] && inputs[prod_id][i]['is_required'] == true)
{
var inputId = document.getElementById(inputs[prod_id][i]['id']);
if(inputId)
{
switch(inputs[prod_id][i]['type'])
{
//input or textarea
case '1':
case '2':
{
if(!inputId.value.length)
{
msg.push('Field "' + inputs[prod_id][i]['name'] + '" cannot be empty.');
}
break;
}
 
//select
case '3':
{
if(inputId.options.length && !inputId.selectedIndex)
{
msg.push('You have to select a product variant for field "' + inputs[prod_id][i]['name'] + '".');
}
break;
}
 
//qty
case '10':
{
var qty = inputId.value;
var test_reg = /^\d+$/;
if(!test_reg.test(qty))
{
msg.push('Invalid value in Antall field.');
}
}
}
}
}
}

if(msg.length) 
{
var msg_text = null;
for(i = 0; i < msg.length; i++)
{
msg_text = msg_text != null ? msg_text + '\r\n' + msg[i] : msg[i];
}
alert(msg_text); 
return false;
}
}

return addToCart(obj, prod_id, false, true);
}


function remember_star_rating(prod_id, rating)
{
document.getElementById('WebshopProductReviewRating' + prod_id).value = rating;
document.getElementById('star5_' + prod_id).src = (rating && rating >= 5) ? img_filled.src : img_empty.src;
document.getElementById('star4_' + prod_id).src = (rating && rating >= 4) ? img_filled.src : img_empty.src;
document.getElementById('star3_' + prod_id).src = (rating && rating >= 3) ? img_filled.src : img_empty.src;
document.getElementById('star2_' + prod_id).src = (rating && rating >= 2) ? img_filled.src : img_empty.src;
document.getElementById('star1_' + prod_id).src = (rating && rating >= 1) ? img_filled.src : img_empty.src;
}

function fImgClick(prod_id, fImgInput, width, title, desc) 
{
document.getElementById('HovedBilde' + prod_id).src = null;
document.getElementById('caption' + prod_id).style.width = width;
document.getElementById('img_container' + prod_id).style.width = width;
document.getElementById('HovedBilde' + prod_id).width = width;
document.getElementById('HovedBilde' + prod_id).src = fImgInput;
document.getElementById('imgTitle' + prod_id).innerHTML = '<b>'+(title ? title : '&nbsp;')+'</b>';
document.getElementById('imgDesc' + prod_id).innerHTML = (desc ? desc : '&nbsp;');
}

function popup(x,O)
{
var O = window.open(x,'','width=500,height=590,resizable=1,scrollbars=yes,menubar=no,left=300,top=140');
return O.opener&&O.opener == self;
}

function show_window(text)
{
var NewWindow = window.open('', '', 'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=500,height=590,directories=no,location=no');

NewWindow.document.open();
NewWindow.document.writeln("<html>\n<head>\n</head>");
NewWindow.document.writeln("<body leftmargin=\"0\" topmargin=\"0\">");
NewWindow.document.writeln("<table width=\"100%\" height=\"100%\">");
NewWindow.document.writeln("<tr><td valign=\"top\" align=\"left\">\n"+text+"</td></tr>");
NewWindow.document.writeln("</table>");
NewWindow.document.writeln("</body>\n</html>\n");
NewWindow.document.close(); 
NewWindow.focus();
return false;
}
 
function show_image(src, width, height)
{
width += 40;
height += 40;
var NewWindow = window.open('', '', 'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width='+width+',height='+height+',directories=no,location=no');

NewWindow.document.open();
NewWindow.document.writeln("<html>\n<head>\n</head>");
NewWindow.document.writeln("<body leftmargin=\"0\" topmargin=\"0\">");
NewWindow.document.writeln("<table width=\"100%\" height=\"100%\">");
NewWindow.document.writeln("<tr><td valign=\"middle\" align=\"center\">\n<a href=\"javascript:window.close();\"><img src="+src+" border=0></a></td></tr>");
NewWindow.document.writeln("</table>");
NewWindow.document.writeln("</body>\n</html>\n");
NewWindow.document.close(); 
NewWindow.focus();
}

function show_image_centered(img, width, height, title)
{
width += 40;
height += 40;
if((document.body.clientWidth < width) || (document.body.clientHeight < height))
{
if (document.body.clientWidth >= width) width = width + 20;
if (document.body.clientWidth < width) width = document.body.clientWidth;
if (document.body.clientHeight < height) height = document.body.clientHeight;
autoScroll = 'yes';
}
else
{
autoScroll = 'no';
}
posLeft = parseInt(screen.width / 2 - width / 2);
posTop= parseInt(screen.height / 2 - height / 2);
var NewWindow = window.open(img,'','top='+posTop+',left='+posLeft+',toolbar=no,scrollbars='+autoScroll+',directories=no,status=no,menubar=no,resizable=no,width='+width+',height='+height);
NewWindow.document.open();
NewWindow.document.writeln("<html>\n<head><title>"+title+"</title>\n</head>");
NewWindow.document.writeln("<body leftmargin=\"0\" topmargin=\"0\">");
NewWindow.document.writeln("<table width=\"100%\" height=\"100%\">");
NewWindow.document.writeln("<tr><td valign=\"middle\" align=\"center\">\n<a href=\"javascript:window.close();\"><img src="+img+" border=0></a></td></tr>");
NewWindow.document.writeln("</table>");
NewWindow.document.writeln("</body>\n</html>\n");
NewWindow.document.close(); 
NewWindow.focus();
}


var img_empty = new Image();
var img_hover = new Image();
var img_filled = new Image();

img_empty.src = '/img/media/images/star_empty.gif';
img_hover.src = '/img/media/images/star_hover.gif';
img_filled.src = '/img/media/images/star_filled.gif';

function switch_tab(what, id)
{
var r_active = new Image();
r_active.src = '/img/media/images/active_right.gif';
var r_inactive = new Image();
r_inactive.src = '/img/media/images/inactive_right.gif'; 

var new_active_tab = 'tab_' + what + '_' + id;
var new_content = what + '_' + id;
var new_r_img = what + '_right_img_' + id;

var desc_tab = 'tab_desc_' + id;
var images_tab = 'tab_images_' + id;
var reviews_tab = 'tab_reviews_' + id;

var desc = 'desc_' + id;
var images = 'images_' + id;
var reviews = 'reviews_' + id;

var desc_r_img = 'desc_right_img_' + id;
var images_r_img = 'images_right_img_' + id;
var reviews_r_img = 'reviews_right_img_' + id;

switch(what)
{
case 'images':
{
document.getElementById(desc_tab).className = 'tabInactive';
if(document.getElementById(reviews_tab)) document.getElementById(reviews_tab).className = 'tabInactive';

document.getElementById(desc_r_img).src = r_inactive.src;
if(document.getElementById(reviews_r_img)) document.getElementById(reviews_r_img).src = r_inactive.src;
 
document.getElementById(desc).style.display = 'none';
if(document.getElementById(reviews)) document.getElementById(reviews).style.display = 'none';
if(document.getElementById('galleryContainer' + id)) setTimeout("initSlideShow("+id+")", 10);
break;
}

case 'reviews':
{
document.getElementById(desc_tab).className = 'tabInactive';
document.getElementById(images_tab).className = 'tabInactive';

document.getElementById(desc_r_img).src = r_inactive.src;
document.getElementById(images_r_img).src = r_inactive.src;

document.getElementById(desc).style.display = 'none';
document.getElementById(images).style.display = 'none';
break;
}

default:
{
document.getElementById(images_tab).className = 'tabInactive';
if(document.getElementById(reviews_tab)) document.getElementById(reviews_tab).className = 'tabInactive';

document.getElementById(images_r_img).src = r_inactive.src;
if(document.getElementById(reviews_r_img)) document.getElementById(reviews_r_img).src = r_inactive.src;

document.getElementById(images).style.display = 'none';
if(document.getElementById(reviews)) document.getElementById(reviews).style.display = 'none';
break;
}
}

document.getElementById(new_active_tab).className = 'tabActive';
document.getElementById(new_content).style.display = 'block';
document.getElementById(new_r_img).src = r_active.src;
}

function GetCookie(sName)
{
	var aCookie = document.cookie.split("; ");
	for (var i = 0;i < aCookie.length;i++)
	{
		var aCrumb = aCookie[i].split("=");
		if(sName == aCrumb[0])
		return unescape(aCrumb[1]);
	}
	return null;
}

function SetCookie(sName,sValue)
{
	document.cookie = sName + "=" + escape(sValue) + "; path=/";
}

function DelCookie(sName)
{
	document.cookie = sName + "=; expires=Fri, 31 Dec 1999 23:59:59 GMT; path=/";
}

function GetAdvancedSearchEngineExpanded()
{
	var sbe = GetCookie("ExpandAdvancedSearchEngine");
	if(sbe)
	{
		return sbe == "True";
	}
	
	return false;
}


if(typeof window.addEventListener != "undefined")
{
	window.addEventListener("load", advSearchEngineHandler, false);
}
else if(typeof window.attachEvent != "undefined")
{
	window.attachEvent("onload", advSearchEngineHandler);
}
  
function advSearchEngineHandler()
{
  	if(document.getElementById('adv_search_engine') && document.getElementById('adv_search_engine_link'))
	{
	  	var obj = document.getElementById('adv_search_engine_link');
	  	obj.onclick = function()
		{
		  	var currText = obj.innerHTML.toString();
			var newStr = currText.substr(0, currText.length - 2);
			obj.innerHTML = (GetAdvancedSearchEngineExpanded() ? newStr + '&rsaquo;&rsaquo;' : newStr + '&lsaquo;&lsaquo;');

    			if(!GetAdvancedSearchEngineExpanded())
  			{
  			  	document.getElementById('adv_search_engine').style.display = 'block';
		  	  	SetCookie("ExpandAdvancedSearchEngine", "True");
		   	}
		   	else
		   	{
		   	  	document.getElementById('adv_search_engine').style.display = 'none';		  	  	
		   	  	SetCookie("ExpandAdvancedSearchEngine", "False");
			}
  		}
	}
}

function receive_password_window(x,O)
{
	var O = window.open(x,'','width=700,height=590,resizable=1,scrollbars=yes,menubar=no,left=200,top=140');
	return O.opener&&O.opener == self;
}
									
function tip_us_window(x,O)
{
	var O = window.open(x,'','width=700,height=590,resizable=1,scrollbars=yes,menubar=no,left=200,top=140');
	return O.opener&&O.opener == self;
}

