
var menu = new menu.dd("menu");

document.observe("dom:loaded", function() {
	try {
    menu.init("menu","menuhover");
    updateCartContent();
  }
  catch(err){}
});

function anchorScroll(anchorName){
	try {
  	Effect.ScrollTo(anchorName, { duration:'1.0', offset:-50 });
  } catch(err){
  }
}
function loadInciProducts(){
  $('inciList').getElements().each(function(item){
  	if(item.id) {
    	var inciId = $F(item.id);
      new Ajax.Updater($('inciProducts_'+inciId),'inci_products.asp?INCI='+inciId);
    }
  });
}

function start_slideshow(start_frame, end_frame, delay) {
    setTimeout(switch_slides(start_frame,start_frame,end_frame, delay), delay);
}

function switch_slides(frame, start_frame, end_frame, delay) {
    return (function() {
    	if($('ss' + frame)){
        Effect.Fade('ss' + frame,{duration: 1});
        (frame == end_frame) ? frame = start_frame : frame = frame + 1 ;
        setTimeout("Effect.Appear('ss" + frame + "', {duration: 1});", 850);
        setTimeout(switch_slides(frame, start_frame, end_frame, delay), delay + 850);
			}
    });
}

function goSiteSearch(){
	alert($F('siteSearchStr'));
}
function moreInfo(prodName){
	var divId  = 'moreInfo_'+prodName;
  var linkId = 'moreLink_'+prodName;
  if($(divId)){
		if($(divId).visible()){
    	$(divId).hide()
      $(linkId).innerText = 'More info »';
    } else {
    	$(divId).ajaxUpdate('moreInfo.asp',{
      	parameters: {Product: prodName},
        onCreate: function(){
        	$(divId).show();
      		$(linkId).innerText = '« Less info';
        }
      });
    }
  }
}
var EventID,Locale,QS;
function defaultQS(){
	EventID = $F('EventID');
  Locale  = $F('Locale');
  QS		  = '?Event='+EventID+'&Locale='+Locale+'&';
  return QS;
}

try {
	Element.addMethods({
	  ajaxUpdate: function(element, url, options){
	    element = $(element);
      element.update('<img src="../script/ajaxloader.gif" alt="loading..." style="width:16px;height:16px;" />');
      new Ajax.Updater(element, url, options);
      return element;
  		}
		});
	}
catch(err){
//	alert(err);
}

function showMenu(dbId){
}

var lastTabName = 'One';
function prodTab(tabName){
	$('singleProdFacts').ajaxUpdate('prodTabContent.asp?Tab='+tabName, {
  	onCreate: function(){
    	$('prodTab_'+lastTabName).className = '';
    	$('prodTab_'+tabName).className = 'active';
      lastTabName = tabName;
    },
  	onComplete: function(){
    	$('prodTabLink_'+tabName).blur();
//    	$('singleProdFacts').focus();
    }
  });
}

function leftPosMenu(dbId){
	var objLeftPos = $('menuId_'+dbId).offsetLeft;
	var paddingLeftValue = 0;
  var relatedMenu = 'menuId_'+dbId;
  $$('[rel='+relatedMenu+']').invoke('setStyle','left: '+Math.floor(objLeftPos+paddingLeftValue)+'px');
}

function submitForm(formId,actionPage,objToUpdate){
	var strQS = '';
  $(formId).getElements().each(function(item){
  	if(item.id) {strQS += item.id + '=' + escape($F(item)) + '&';}
  });
	$(objToUpdate).ajaxUpdate(actionPage+'?'+strQS);
}

var graphicsSrc = '../graphics/common/';
var checkIconSrc = ['pix.gif','16_alert_red.gif','16_check_green.gif'];

function toggleImgSrc(imgId,toggleOne,toggleTwo) {
	($(imgId).src.indexOf(toggleOne)>1) ? $(imgId).src = graphicsSrc+toggleTwo : $(imgId).src = graphicsSrc+toggleOne ; 
}

function rusure(value) {
  if(confirm(value)) {return true;}
  else {return false}
}

function addToCart(artID,artNo){
	if($('cartConfirmDiv')){
  	$('cartConfirmDiv').hide();
  }
	artNoQty = $F('Qty'+artNo);
	if(!validateStr(artNoQty,'nr')){
  	artNoQty = 1;
    $('Qty'+artNo).value = artNoQty;
  }
  new Ajax.Request('../shop/action.asp',{
  	parameters: {Action: 10, Article: artID, ArticleNr: artNo, Qty: artNoQty},
    onComplete: function(ret){
    	var respText = ret.responseText;
  		updateCartContent();
      if(!$('cartConfirmDiv')){
      	var cartConfirmDiv = document.createElement('div');
				Element.extend(cartConfirmDiv);
				cartConfirmDiv.setAttribute('id', 'cartConfirmDiv');
        cartConfirmDiv.setStyle({display: 'none', width: '400px', height: '200px', opacity: '0.9'});
        document.body.appendChild(cartConfirmDiv);
      }
      centerDiv($('cartConfirmDiv'));
      $('cartConfirmDiv').ajaxUpdate('../shop/action.asp',{
      	parameters: {Action: 30},
        onComplete: function(){
        	$('layoutContainer').setStyle({ opacity: 0.5 });
 		    	$('cartConfirmDiv').grow({ duration: 0.2 });
        }
      });
//      $('Qty'+artNo).value = 1;
    }
  });
}
function closeCartConfirmDiv(){
	$('layoutContainer').setStyle({ opacity: 1.0 });
  $('cartConfirmDiv').hide();
}
function cartRemoveFrom(orderRow){
	if(orderRow == 0){
  	if(confirm('Vill du rensa hela kundvagnen?')){
    	new Ajax.Request('../shop/action.asp',{
      	parameters: {Action: 46},
        onComplete: function(){
        	location.reload();
        }
      });
    }
  } else {
  	if(confirm('Vill du radera denna produkt från kundvagnen?')){
    	new Ajax.Request('../shop/action.asp',{
      	parameters: {orderRow: orderRow, Action: 45},
        onComplete: function(){
        	updateCartContent();
        	refreshCartcontainer('List');
    			refreshCartcontainer('Paytype');
        	refreshCartcontainer('Sum');
        }
      });
  	}
	}
}

function centerDiv(divId){
	var elt 			= $(divId);
  var eltDims   = elt.getDimensions();
  var eltW 			= eltDims.width;
  var eltH 			= eltDims.height;
  var winScroll	= document.viewport.getScrollOffsets();
  var winTopC		= winScroll[1] + (document.viewport.getHeight()/2);
  var winLeftC	= winScroll[0] + (document.viewport.getWidth()/2);
  var eltTop		= winTopC - (eltH/2)
  var eltLeft		= winLeftC - (eltW/2)
  elt.setStyle({position: 'absolute', top: eltTop+'px', left: eltLeft+'px'});
}

function x_findpos(obj){
	var curleft = curtop = 0;
  alert(obj.offsetParent);
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} 
    while (obj = obj.offsetParent);
    return curleft;
		//return [curleft,curtop];
	}
}
function updateCartContent(){
	new Ajax.Request('../shop/action.asp',{
  	parameters: {Action: 20},
    onComplete: function(ret){
    	var respText = ret.responseText;
			$('spanMenuCartText').innerHTML = respText;
    }
  });
}
function showCartPage(){
	$('cartContainerList').ajaxUpdate('../shop/cartContainerList.asp',{
  	onComplete: function(){
    	refreshCartcontainer('Paytype');
    	refreshCartcontainer('Sum');
    	refreshCartcontainer('Client');
    }
  });
}
function refreshCartcontainer(theCc){
	switch(theCc){
  	case 'List':
			$('cartContainerList').ajaxUpdate('../shop/cartContainerList.asp');
    	break;
  	case 'Paytype':
			$('cartContainerPaytype').ajaxUpdate('../shop/cartContainerPaytype.asp');
    	break;
  	case 'Sum':
			$('cartContainerSum').ajaxUpdate('../shop/cartContainerSum.asp');
    	break;
  	case 'Client':
			$('cartContainerClient').ajaxUpdate('../shop/cartContainerClient.asp');
    	break;
  }
}
function updateCart(){
	var strQS = '';
  $('Action').value = 40;
  $('cartForm').getElements().each(function(item){
    if(item.type == 'text' || item.type=='hidden'){
    	strQS += item.name + '=' + escape($F(item)) + '&';
    }
  });
	new Ajax.Request('../shop/action.asp?'+strQS,{
    onComplete: function(resp){
    	updateCartContent();
    	refreshCartcontainer('List');
      if($F('paymentType_1') || $F('paymentType_2')) {
    		refreshCartcontainer('Paytype');
    		refreshCartcontainer('Sum');
      }
    }
  });
}
function selectPaytype(payTypeNr){
	new Ajax.Request('../shop/action.asp',{
  	parameters: {Action: 50, payType: payTypeNr},
    onCreate: function(){
      ($F('paymentType_2')==2) ? $('dibsInfo').show() : $('dibsInfo').hide() ;
    },
    onComplete: function(resp){
    	refreshCartcontainer('Paytype');
    	refreshCartcontainer('Sum');
    }
  });
}
var cartFormOK = false;
function acceptTerms(){
	var pt = $RF('cartForm', 'paymentType');
	if($F('clientTermsAccepted') == 1 && pt){
    $('cartSubmitButton').enable();
  } else {
    $('cartSubmitButton').disable();
  }
}

var formErrorsFound;
function checkFormAndSubmit(){
	$('cartSubmitButton').disable();
  $('formErrorFound').hide();
	formErrorsFound = 0;
	var formArray = ['clientFirstName','clientLastName','clientAddress','clientEmail','clientZipcode','clientArea'];
  formArray.each(function(item){
  	try {
			checkFormField(item);
    } catch(err) {} 
	});
	if(formErrorsFound == 0) {
		$('Action').value = 60;
  	return true;
  } else {
    $('cartSubmitButton').enable();
    $('formErrorFound').innerHTML = 'Ett eller fler fel hittades i formuläret. Var vänlig rätta till och försök igen.';
   	$('formErrorFound').appear({ duration: 0.5 });
  	return false;
  }
}

function checkFormField(checkField){
	switch(checkField) {
  	case 'clientFirstName': 
    case 'clientLastName': 
    case 'clientAddress':
    case 'clientZipcode':
    case 'clientArea':
    	(validateStr($F(checkField),'minmaxlength')) ? showCheckIcon(checkField,true) : showCheckIcon(checkField,false) ; 
	    break;
  	case 'clientEmail': 
    	(validateStr($F(checkField),'email')) ? showCheckIcon(checkField,true) : showCheckIcon(checkField,false) ;
    	break;
  }
}

var checkIconSrc = [
	'../graphics/common/16_empty.gif',
  '../graphics/common/16_alert_red.gif',
  '../graphics/common/16_check_green.gif'
  ];
function showCheckIcon(checkField,fieldStatus){
	var checkIcon;
	if (fieldStatus == 'hide') {
  	checkIcon = checkIconSrc[0];
    $(checkField).className = 'cartClientform';
  } 
	else if(fieldStatus == true) {
  	checkIcon = checkIconSrc[2];
    $(checkField).className = 'cartClientform';
  }
  else {
  	checkIcon = checkIconSrc[1];
    formErrorsFound = 1;
    $(checkField).className = 'cartClientform formErr';
  }
  $('chkIcon_'+checkField).src = checkIcon;
}

function $RF(el, radioGroup) {
  if($(el).type && $(el).type.toLowerCase() == 'radio') {
    var radioGroup = $(el).name;
    var el = $(el).form;
  } else if ($(el).tagName.toLowerCase() != 'form') {
    return false;
  }
  var checked = $(el).getInputs('radio', radioGroup).find(
    function(re) {return re.checked;}
  );
  return (checked) ? $F(checked) : null;
}

function validateStr(eValue,strTest){
	var testPattern;
	switch (strTest){
  	case 'terms':
    	testPattern = /^[1]$/;
    	break;
  	case 'phone':
    	testPattern = /^[\+0-9- ]{6,}$/;
	    break;
  	case 'phoneint':
    	testPattern = /^[\+0-9- \(\)\/]{6,}$/;
	    break;
  	case 'cellphone':
    	testPattern = /^[\+0-9- \(\)\/]{10,}$/;
	    break;
  	case 'email':
    	testPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
	    break;
  	case 'ssnr':
    	testPattern = /^(19|20)?[0-9]{6}[- ]?[0-9]{4}$/;
	    break;
  	case 'minlength':
    	testPattern = /^.{1,}$/;
	    break;
  	case 'maxlength':
    	testPattern = /^.{0,10}$/;
	    break;
  	case 'minmaxlength':
    	testPattern = /^.{1,50}$/;
	    break;
  	case 'nr':
    	testPattern = /^[0-9]+$/;
	    break;
  	case 'regcode':
    	testPattern = /^[0-9]{6}$/;
    	testPattern = /^[1-2]{1}[0-9]{5}$/;
	    break;
  	case 'postalnr':
    	testPattern = /^[0-9]{3}[ ]?[0-9]{2}$/;
	    break;
  	case 'goodpwstrength':
    	testPattern = /^(?=.{6,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).*$/;
	    break;
  	case 'bestpwstrength':
    	testPattern = /^(?=.{7,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\W).*$/;
	    break;
  }
	return testPattern.test(eValue);
}

function shopMoreInfo(prod){
	var prodIcon = $('shopMoreIcon_'+prod);
  var prodContent = $('shopMoreContent_'+prod);
  if (prodContent.visible()){
  	Effect.SlideUp(prodContent, { duration: 0.4 });
  	prodIcon.src = "../graphics/common/20_arrow_r.gif";
  } else {
  	Effect.SlideDown(prodContent, { duration: 0.4 });
  	prodIcon.src = "../graphics/common/20_arrow_d.gif";
  }
}

function toggleSprites(o,c2){
	o.toggleClassName(c2);
}
