var index = 0;
var inChange = 0;
var myShop = new Array();
var inQS = 0;
var cartFilled = 0;
var inCart = -1;
var tPrice=0; //total price
var validWeight=1; //if the weight of the cart is valid     



onChangeIds = ['hr'];

YAHOO.util.Event.addListener(onChangeIds, 'click', func_prescription, true);

function func_prescription(){
  document.getElementById('sendprescription').style.visibility = 'visible';
  
}

function commitPayment(){
  if(checkBeforeSubmit() == false)
    return;
  
  /* Send the cart to be sure that all attributes are registered*/
  cartStr = '';        
  for (var i=0;i < document.forms.length; i++) {
    form = document.forms[i];		
    if(form.name == 'lensOptions'){
      if(form.elements.length){	    
	cartStr+=genDataFromArticleForm(form) + '&';	      	    
      }
    }
  }
  
  cartStr = cartStr.substring(0, cartStr.length -1);  
  bURL = getBaseURL();  
    
  if(document.getElementById('ccardbutton').checked == true){
    waitShow("Kontaktar betalsystem...", "Kontaktar Payex för kortbetalning...");
    pmCmd = "P_RegTransfer";
    //window.location.href = "index.php?P_RegTransfer&" + cartStr; 
    
  }
  else if(document.getElementById('billmeradio').checked == true){    
    waitShow("Kontaktar betalsystem...", "Kontaktar Klarna för fakturabetalning...");
    pmCmd = "kreditorPay";
    //window.location.href = "index.php?kreditorPay&" + cartStr;        
  } 
  
  myform=document.createElement("form");
  myform.id = 'execPayment';
  myform.name = 'execPayment';
  
  myform.method ='post';
  myform.action = bURL + 'index.php';
  
  
  var input = document.createElement("input");
  input.setAttribute("type", "hidden");
  input.setAttribute("name", pmCmd);
  input.setAttribute("value", "0");    
  myform.appendChild(input);
  
  var input = document.createElement("input");
  input.setAttribute("type", "hidden");
  input.setAttribute("name", "art");
  input.setAttribute("value", cartStr);  
  myform.appendChild(input);
  
  document.body.appendChild(myform);
  document.forms["execPayment"].submit();
  
  //document.getElementById("execPayment").submit();
  //myform.bmit();
}


function sendCustomerInfo(){
  if(!inQS)
    return;        
  
  custStr = '';
  for (var i=0;i < document.forms.length; i++) {
    form = document.forms[i];		
    if(form.name == 'regForm'){
      if(form.elements.length){	    
	custStr+=genDataFromForm(form) + '&';	      	    
      }
    }
  }
  
  //custStr = custStr.substring(0, custStr.length -1);  

  var returningFunc = function (o){        
    // alert(o.responseText);    
  }
  
  var callback =   
    {   
      success:returningFunc,   
      failure: failureHandler
    };   
  
  var request = YAHOO.util.Connect.asyncRequest('GET', 'index.php?saveCustomerInfo&' + custStr, callback);  
}


YAHOO.namespace("example.container");

function waitShow(header, body) {
  // Initialize the temporary Panel to display while waiting for external content to load
  
  YAHOO.example.container.wait = 
    new YAHOO.widget.Panel("wait",  
			   { width: "300px", 
			       fixedcenter: true, 
			       underlay:"shadow",
			       close:false,
			       zindex:4,
			       modal: true,
			       visible: false
			       } 
			   );
    
  //YAHOO.example.container.wait.setHeader(header);
  YAHOO.example.container.wait.setHeader('<center><bold>' + body + '</bold></center>');
  //bURL = getBaseURL();  
  //body = '<center>' + body + '<br><img src=\"' + bURL + '/wwwExternal/images/laddarmellan.gif\"></center>';
  body = '<center><img src=\"http://l.yimg.com/a/i/us/per/gr/gp/rel_interstitial_loading.gif\"/></center>';
  YAHOO.example.container.wait.setBody(body);
  
  //"<img src=\"http://l.yimg.com/a/i/us/per/gr/gp/rel_interstitial_loading.gif\"/>");
  YAHOO.example.container.wait.render(document.body);
    
  // Show the Panel
  YAHOO.example.container.wait.show();
}

function waitHide() {
  YAHOO.example.container.wait.hide();
}

function yesNo(message, hY, hN){
  
  
  // Define various event handlers for Dialog    
  var handleYes = function() {
    this.hide();
    hY();
  };
  
  
  var handleNo = function() {
    this.hide();
    hN();
  };
  
  // Instantiate the Dialog
  YAHOO.example.container.simpledialog1 = new YAHOO.widget.SimpleDialog("simpledialog1", 
									{ width: "300px",
									    fixedcenter: true,
									    visible: false,
									    draggable: true,
									    close: true,
									    text: message,
									    icon: YAHOO.widget.SimpleDialog.ICON_HELP,
									    constraintoviewport: true,
									    buttons: [ { text:"Avboka tiden", handler:handleYes, isDefault:false},
										       { text:"Avbryt",  handler:handleNo, isDefault:false} ]
									    } );
  YAHOO.example.container.simpledialog1.setHeader(message);
  
  // Render the Dialog
  YAHOO.example.container.simpledialog1.render(document.body);
  YAHOO.example.container.simpledialog1.show();
  
}


function newAlert(header, body) {    
  // Initialize the temporary Panel to display while waiting for external content to load
    
  var handleCancel = function() {
    this.cancel();
  };
  
  
  YAHOO.example.container.dial = 
    new YAHOO.widget.Dialog("dial",  
			    { width: "400px", 
				fixedcenter: true,
				underlay:"shadow",			       
				close: true,
				draggable: true, 
				zindex:4,
				modal: true,
				visible: false,
				effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25},
				buttons : [{text:"Stäng", handler:handleCancel, isDefault:false}]
				} 
			    );
    
  YAHOO.example.container.dial.setHeader(header);
  YAHOO.example.container.dial.setBody(body);
  
  //"<img src=\"http://l.yimg.com/a/i/us/per/gr/gp/rel_interstitial_loading.gif\"/>");
  YAHOO.example.container.dial.render(document.body);
    
  // Show the Panel
  YAHOO.example.container.dial.show();
}

function initQuickShop(){
  inQS = 1;    
  updateShopTotal();
  index = countArticles();	  
  
  
  
  if(index){
    //remove the varukorg-table
    //document.getElementById('cartTable').style.display= 'none';
    
    
    
    document.getElementById('quickShopRegisterCustomer').style.display= '';
    document.getElementById('quickShopZoomHeader').style.display= '';        
    document.getElementById('quickShopOrderSumUp').style.display= '';
    
    obj = document.getElementById("headlabel");
    
    if(obj != null)
      obj.parentNode.removeChild(obj);
    
    //var obj = document.getElementById("payment_source");	 	
    //obj.innerHTML = "Ej valt";
  }
  
  if(gup('addNo') != ''){
    showQuickShopArtConfig('', 0);
  }
  
  
}

function configureCart(cartVal){
  var i;
  selectbox = document.getElementById('snabbmeny');
  for(i=selectbox.options.length-1;i>0;i--)
    {      
      selectbox.remove(0);      
    }
  
  selectbox[0].innerHTML = 'Totalt värde: ' + cartVal + " kr";      
}



function removeArticle(obj){	
    while(obj.getAttribute('id') != "shopTable"){
	obj = obj.parentNode;
    }
    
    obj.parentNode.removeChild(obj);
    
    index = index - 1;
    
    if(!index){
      document.getElementById('quickShopRegisterCustomer').style.display= 'none';
      document.getElementById('quickShopZoomHeader').style.display= 'none';
      document.getElementById('quickShopOrderSumUp').style.display= 'none';
      
      configureCart(0.00);
    }
    
    sendArtsToCart();  
    updateShopTotal();    
}

function validatePNum(sPNum)
{
  
  if(sPNum.substr(0,2) != '19' && sPNum.substr(0,2) != '20')
    if(sPNum.substr(0,2) < 11)
      sPNum = 20 + sPNum;
    else
      sPNum = 19 + sPNum;
  
  
  
  sPNum = sPNum.replace('-', '');
    
  var numbers = sPNum.match(/^(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)$/);
  var checkSum = 0;

  var d = new Date();
  if (!isDate(sPNum.substring(0,4),sPNum.substring(4,6),sPNum.substring(6,8))) {
    //alert("Datumet " + sPNum.substring(0,8) + " är inte korrekt.");
    return false;
  }

  if (numbers == null) { return false; }

  var n;
  for (var i = 3; i <= 12; i++)
  {
    n=parseInt(numbers[i]);
    if (i % 2 == 0) {
      checkSum+=n;
    } else {
      checkSum+=(n*2)%9+Math.floor(n/9)*9
    }
  }
  
  if (checkSum%10==0) { return true;}
  
  return false;
}

function getYear(y) { return (y < 1000) ? y + 1900 : y; }

function isDate(year, month, day)
{
  month = month - 1; // 0-11 in JavaScript
  var tmpDate = new Date(year,month,day);
  if ( (getYear(tmpDate.getYear()) == year) &&
  (month == tmpDate.getMonth()) &&
  (day == tmpDate.getDate()) )
    return true;
  else
    return false;
}


function checkConfig(){    
  for (var i=0;i < document.forms.length; i++) {
    form = document.forms[i];		
    if(form.name == 'lensOptions'){
      if(form.elements.length){									
	if(valjCheckQS(form) == false)
	  return false;				
      }			
    }
  }
}


function updateShopTotal(){
  if(!inQS)
    return;        
  
  
  var totalPrice = 0;
  var lo_index = 0;
  
  for (var i=0;i < document.forms.length; i++) {
    form = document.forms[i];		
    if(form.name == 'lensOptions'){
      if(typeof(form.a_index) == "object"){
	form.a_index.value = lo_index;
	lo_index++;
      }
    }
    
    if(form.name == 'info'){
      if(form.elements.length){									
	var p = parseFloat(form.Price.value);				
      }
    }
    
    if(form.name == 'lensOptions'){
      if(form.elements.length){									
	nof = parseInt(form.zoomArticleNOMenuLeft.options[form.zoomArticleNOMenuLeft.selectedIndex].text);
	if(form.zoomArticleNOMenuRight != null)
	  nof += parseInt(form.zoomArticleNOMenuRight.options[form.zoomArticleNOMenuRight.selectedIndex].text);
	totalPrice = totalPrice + (p*nof);				
      }
    }
    
  }
  
  updateCargoPriceAndLevdate();
  tPrice = totalPrice;  
  
}


function handleCargoAndLevdate(o){
  //alert(o.responseText);
  
  validWeight = parseInt(o.responseText.substring(0,1));  
  
  
  if(validWeight == 0){
    //   newAlert("Varornas vikt",
    // 	     "Varorna väger för mycket för att skickas. Ändra antalet varor och försök igen");
    
    var cargoP = 'vikt för hög';
    var cDate = o.responseText.substring(16);
    
    var sum = parseFloat(tPrice);// + parseFloat(cargoP);
  
    var levD = o.responseText.substring(1, 11);
    
    var vat = parseFloat(sum * 0.2).toFixed(2);    
  }
  else {
    var cargoP = o.responseText.substring(11,16);  
    var cDate = o.responseText.substring(16);
    
    var sum = parseFloat(tPrice) + parseFloat(cargoP);
    
    var levD = o.responseText.substring(1, 11);
    
    var vat = parseFloat(sum * 0.2).toFixed(2);
  
  }
  
  
  obj = document.getElementById('cDate');
  obj.innerHTML = cDate;	  
  
  obj = document.getElementById('cargo');
  obj.innerHTML = cargoP;	
    
  obj = document.getElementById('levDate');
  obj.innerHTML = levD;
    
  obj = document.getElementById('tprice');
  obj.innerHTML = sum.toFixed(2);
    
  obj = document.getElementById('VAT');
  obj.innerHTML = vat + "&nbsp kr";;
  
  //configure the look of the cart
  configureCart(tPrice.toFixed(2));
  
  if(validWeight == 0){
    newAlert("Varornas vikt",
	     "Varorna väger för mycket för att skickas. Ändra antalet varor och försök igen");
  }
}


function updateCargoPriceAndLevdate(){
  
  var callback =   
    {   
      success:handleCargoAndLevdate,
      failure: failureHandler
    };   
  
  var arts='';
  var q='';
  var c=0;

  
  for (var i=0;i < document.forms.length; i++) {    
    form = document.forms[i];		
    if(form.name == 'lensOptions'){
      if(form.elements.length){
	arts += 'arts[]=' + form.elements.ArtNo.value + '&';
		
	c = parseInt(form.elements.zoomArticleNOMenuLeft.options[form.elements.zoomArticleNOMenuLeft.selectedIndex].text);
	if(typeof(form.elements.zoomArticleNOMenuRight) == 'object')
	  c+= parseInt(form.elements.zoomArticleNOMenuRight.options[form.elements.zoomArticleNOMenuRight.selectedIndex].text);
	
	q += 'q[]=' + c + '&';
	
      }
    }    
  }
  
  //In sweden or europe?
  ccObj = document.getElementById('country');
  var cc = ccObj.options[ccObj.selectedIndex].text;

  if(arts.length)
    var request = YAHOO.util.Connect.asyncRequest('GET', 'index.php?quickGetCargoLev&' + arts + '&' + q + 'cc=' + cc, callback);
  
}

function sendArtsToCart(){
  if(!inQS)
    return;        
  
  cartStr = '';
  for (var i=0;i < document.forms.length; i++) {
	form = document.forms[i];		
	if(form.name == 'lensOptions'){
	  if(form.elements.length){	    
	    cartStr+=genDataFromArticleForm(form) + '&';	      	    
	  }
	}
  }
  
  cartStr = cartStr.substring(0, cartStr.length -1);  
  
  callPHPCart(cartStr);
  
}

function callPHPCart(cs){
    
  var doPHPFill = function (o){        
    //updateCargoPriceAndLevdate();
    //updateShopTotal();
    
    // if(validWeight == 0){
    //       newAlert("Varornas vikt",
    // 	       "Varorna väger för mycket för att skickas. Ändra antalet varor och försök igen");
    
    //       return false;
    //     }
    
    //alert("Varor lagda i varukorg");
    //alert(o.responseText);  
    //document.regForm.submit();
  }
  
  var callback =   
    {   
      success:doPHPFill,   
      failure: failureHandler
    };   
  
  cs = "quickAddCart=0&" + cs;
  var request = YAHOO.util.Connect.asyncRequest('POST', 'index.php', callback, cs);
  
}

function quickAddArticle(artId, path){
  bURL = getBaseURL();
  path = bURL;
  
  waitShow("Lägger till artikel", "Lägger i artikeln i varukorgen...");
  
  // if(path == "list"){
  //     bURL = location.href.substring(0,location.href.lastIndexOf('/'));    
  //     bURL = bURL.substring(0,bURL.lastIndexOf('/'));
  //     path = bURL.substring(0,bURL.lastIndexOf('/')+1);
  //   }
  //   else
  //     bURL = path + "e-butik";
  
  var suss = function (o){
    // location.href="http://localhost/hendens/e-butik";
    
    location.href = bURL + "e-butik";
    
    return true;
  }
  
  var callback =   
    {   
      success: suss,
      failure: failureHandler
    };   
  
  index++;
    
  cs = "art[" + artId + "][AddToCart]=GotoCart&art[" + artId + "][ArtNo]=" + artId + "&art[" + artId + "][Id]=%7Bid%7D&art[" + artId + "][a_index]=0&art[" + artId + "][zoomArticleSPMenuLeft]=V" + escape('ä') +"lj...&art[" + artId + "][zoomArticleSPMenuRight]=V" + escape('ä') + "lj...&art[" + artId + "][zoomArticleBCMenuLeft]=Välj...&art[" + artId + "][zoomArticleBCMenuRight]=Välj...&art[" + artId + "][zoomArticleDMMenuLeft]=14.00&art[" + artId + "][zoomArticleDMMenuRight]=14.00&art[" + artId + "][zoomArticleCLMenuLeft]=Välj...&art[" + artId + "][zoomArticleCLMenuRight]=Välj...&art[" + artId + "][zoomArticleNOMenuLeft]=1&art[" + artId + "][zoomArticleNOMenuRight]=1";
    
  //cs = Utf8.encode(cs);
  //cs = escape(cs);
  
  var request = YAHOO.util.Connect.asyncRequest('GET', path + 'index.php?quickAddCart&noEmpty=1&' + cs, callback);  
  
}


function countArticles(){
    var forms = 0;
    for (var i=0;i < document.forms.length; i++) {
	form = document.forms[i];		
	if(form.name == 'lensOptions'){
	    forms++;
	}
    }
    return forms;
}

function getBaseURL() {
    var url = location.href;  // entire url including querystring - also: window.location.href;
    var baseURL = url.substring(0, url.indexOf('/', 14));


    if (baseURL.indexOf('http://localhost') != -1) {
        // Base Url for localhost
        var url = location.href;  // window.location.href;
        var pathname = location.pathname;  // window.location.pathname;
        var index1 = url.indexOf(pathname);
        var index2 = url.indexOf("/", index1 + 1);
        var baseLocalUrl = url.substr(0, index2);

        return baseLocalUrl + "/";
    }
    else {
      return baseURL + "/";

      obj = document.getElementById('testdiv');
      
      if(obj == null)
	return baseURL + "/";
      
      if(typeof(obj) == 'object')
	return baseURL + "/testsite/";
      
      
    }

}

function addFromQM(){
  obj = document.getElementById('quickSel');
  v = obj.options[obj.selectedIndex].value.split("_")[1].split(".")[0];  
    
  bURL = location.href.substring(0,location.href.lastIndexOf('/')+1);
    
  quickAddArticle(v, bURL);
  
  //quickAddArticle(v, 'http://localhost/hendens/');
  
}

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

function showQuickShopArtConfig(obj, update){	
  if(typeof(obj) == 'object'){
    if(obj.options[obj.selectedIndex].value == '' || obj.options[obj.selectedIndex].value.indexOf('--------') != -1){
      return false;
    }
    aNo = obj.options[obj.selectedIndex].value.split("_")[1].split(".")[0];	
  }
  else{
    aNo = gup("addNo");    
  }
  
  //updateShopTotal();
  index = countArticles();	
  var callback =   
    {   
      success:fastConfig,   
      failure: failureHandler
    };   
  
  
  var request = YAHOO.util.Connect.asyncRequest('GET', 'index.php?quickConfig&ajax_=2&ArtNo=' + aNo + '&a_index=' + index, callback);
}


function fastConfig(o){  
  var obj = document.getElementById("headlabel");	 	
  if(obj != null)
    obj.parentNode.removeChild(obj);
  
  obj = document.getElementById("quickId");
  
  //remove the varukorg-table
  //document.getElementById('cartTable').style.display= 'none';
    
  myShop[index] = obj;
  obj.innerHTML += o.responseText;	
  
  document.getElementById('quickShopRegisterCustomer').style.display= '';
  document.getElementById('quickShopZoomHeader').style.display= '';
  document.getElementById('quickShopOrderSumUp').style.display= '';
  
  //document.getElementById('quickShopRegisterCustomer').style.display= 'visible';
  //document.getElementById('quickShopZoomHeader').style.display= 'visible';
  
  updateShopTotal();	
  index++;
  
  sendArtsToCart();
  
}

function failureHandler(){
  return;
  newAlert("Fel!", "Kommunikationen blev avbruten, pröva att stänga din webbläsare och starta den igen.");
}


function payexDisable(){

    document.getElementById("submitPayex").style.visibility = 'hidden';
    waitShow("Kontaktar Payex", "Betalningssystemet kontaktas...");
    return false;
}


function genDataFromForm(form) {
    var theform = form;
    var PostText = '';
    var amp = '';
    for(i=0; i<theform.elements.length; i++){
      
      if(theform.elements[i].type == 'text' || theform.elements[i].type == 'textarea' || theform.elements[i].type == 'hidden'){
	PostText += amp + theform.elements[i].name + '=' +encodeURIComponent(theform.elements[i].value);
      } else if (theform.elements[i].type == 'checkbox') {
	PostText += amp+theform.elements[i].name+'='+theform.elements[i].checked;	
      } else if (theform.elements[i].type == 'select-one') {
	PostText += amp+theform.elements[i].name+'='+theform.elements[i].options[theform.elements[i].selectedIndex].value;	
      } else if (theform.elements[i].type == 'radio') {
	if(theform.elements[i].checked)
	  PostText += amp+theform.elements[i].name+'='+theform.elements[i].value;	
      }
      
      amp = '&';
    } 
    
    return PostText;	
}


function genDataFromArticleForm(form) {
    var theform = form;
    var PostText = '';
    var amp = '';
    for(i=0; i<theform.elements.length; i++){
      
      if(theform.elements[i].type == 'text' || theform.elements[i].type == 'textarea' || theform.elements[i].type == 'hidden'){
	PostText += amp + 'art' + '['+ theform.ArtNo.value +']' + '[' + theform.elements[i].name + ']='+encodeURIComponent(theform.elements[i].value);
      } else if (theform.elements[i].type == 'checkbox') {
	//PostText += amp+theform.elements[i].name+'[]='+theform.elements[i].checked;
	PostText += amp + 'art' + '['+ theform.ArtNo.value +']' + '[' + theform.elements[i].name + ']=' + theform.elements[i].checked;
      } else if (theform.elements[i].type == 'select-one') {
	//PostText += amp+theform.elements[i].name+'[]='+theform.elements[i].options[theform.elements[i].selectedIndex].text;
	PostText += amp + 'art' + '['+ theform.ArtNo.value +']' + '[' + theform.elements[i].name + ']='+theform.elements[i].options[theform.elements[i].selectedIndex].text;
      }
      amp = '&';
    } 
    
    return PostText;	
}

function valjCheckQS(form) {
	
    var v = 0;
    var t = 1;
	
	

    if(form.zoomArticleNOMenuLeft.options[form.zoomArticleNOMenuLeft.selectedIndex].text != 0) {		
	t = 0;
	for (var i=3;i < form.elements.length; i++) {			
	    if(form.elements[i].id == "leftLens") {

		if(form.elements[i].options[form.elements[i].selectedIndex].text == "Välj..."){
		    v = 1;
		    setColor(form.elements[i], "#ff9999");		    
		}
	    }
	}
    }
	
    if(form.zoomArticleNOMenuRight != null) {
	if(form.zoomArticleNOMenuRight.options[form.zoomArticleNOMenuRight.selectedIndex].text != 0) {
	    t = 0;
	    for (var i=3;i < form.elements.length; i++) {
		if(form.elements[i].id == "rightLens") {
		  if(form.elements[i].options[form.elements[i].selectedIndex].text == "Välj..."){
		    v = 1;
		    setColor(form.elements[i], "#ff9999");		    
		  }		  
		}
	    }
	}
    }
	
    if(v!=1 && t!=1) {
	return true;	
    }
    else {
      if(t==1) {newAlert("Antal linser", "Du har valt noll antal linser till både vänster och höger öga"); }
      //if(v==1) {alert("Alla fält måste vara ifyllda");}
      if(v==1) {
	newAlert("Korrigera följande innan du går vidare: ", "Du måste fylla i alla värden i \"dina varor\"");
	window.scroll(0,140);
      }
		
	return false;
    }
}

function setColor (control, color) {
  control.style.background = color;        
}

function valjCheck(form) {
	
    var v = 0;
    var t = 1;
	
	

    if(form.zoomArticleNOMenuLeft.options[form.zoomArticleNOMenuLeft.selectedIndex].text != 0) {		
	t = 0;
	for (var i=3;i < form.elements.length; i++) {			
	    if(form.elements[i].id == "leftLens") {

		if(form.elements[i].options[form.elements[i].selectedIndex].text == "Välj..."){
		    v = 1;
		}
	    }
	}
    }
    if(form.zoomArticleNOMenuRight != null) {
	if(form.zoomArticleNOMenuRight.options[form.zoomArticleNOMenuRight.selectedIndex].text != 0) {
	    t = 0;
	    for (var i=3;i < form.elements.length; i++) {
		if(form.elements[i].id == "rightLens") {
		    if(form.elements[i].options[form.elements[i].selectedIndex].text == "Välj..."){
			v = 1;
		    }
		}
	    }
	}
    }
	
    if(v!=1 && t!=1) {
	return true;	
    }
    else {
	if(t==1) {newAlert("Korrigera följande innan du går vidare: ", "Du har valt noll antal linser till både vänster och höger öga"); }
	if(v==1) {newAlert("Korrigera följande innan du går vidare: ", "Alla fält måste vara ifyllda");}
		
	return false;
    }
}


function checkBeforeSubmit(){
  if(validWeight == 0){
    newAlert("Varornas vikt",
	     "Varorna väger för mycket för att skickas. Ändra antalet varor och försök igen");
    
    return false;
  }
  
  var f = 0;
  var errorStr = '';
  
  pnoObj = document.getElementById("socialSecNo");
  pno = document.getElementById("socialSecNo").value;
  
  if(validatePNum(pno) == false){
    f = 1;  
    errorStr +='Ditt personnummer är felaktigt ifyllt (10 siffror)<br>';    
    setColor(pnoObj, "#ff9999");
  }
  else
    setColor(pnoObj, "white");
  
  if(document.regForm.firstName.value.length == 0){
    f = 1;
    errorStr +='Vänligen fyll i ditt förnamn<br>';
    setColor(document.regForm.firstName, "#ff9999");
  }
  else
    setColor(document.regForm.firstName, "white");
  
  if(document.regForm.lastName.value.length == 0){
    f = 1;		
    errorStr +='Vänligen fyll i ditt efternamn<br>';
    setColor(document.regForm.lastName, "#ff9999");
  }
  else
    setColor(document.regForm.lastName, "white");
  
  
  if(document.regForm.address.value.length == 0){
    f = 1;
    errorStr +='Vänligen fyll i din adress<br>';
    setColor(document.regForm.address, "#ff9999");
  }
  else
    setColor(document.regForm.address, "white");
  
  
  if(document.regForm.zipCode.value.length < 5){
    f = 1;				
    errorStr +='Vänligen fyll i ditt postnummer<br>';
    setColor(document.regForm.zipCode, "#ff9999");
  }
  else
    setColor(document.regForm.zipCode, "white");
  
  
  if(document.regForm.postalAddress.value.length == 0){
    f = 1;
    errorStr +='Vänligen fyll i din postadress<br>';
    setColor(document.regForm.postalAddress, "#ff9999");
  }
  else
    setColor(document.regForm.postalAddress, "white");
  
  
  if(document.regForm.phoneNo.value.length < 6){
    f = 1;
    errorStr +='Vänligen fyll i ditt telefonnummer<br>';
    setColor(document.regForm.phoneNo, "#ff9999");
  }
  else
    setColor(document.regForm.phoneNo, "white");
  
  
  if(document.regForm.email.value.length < 7){
    f = 1;
    errorStr +='Vänligen fyll i din e-post<br>';
    setColor(document.regForm.email, "#ff9999");
  }
  else
    setColor(document.regForm.email, "white");
  
  /*
  if(document.getElementById('hr').checked == false){
    f = 1;
    errorStr +='Vänligen validera att du har ett recept genom att klicka i checkrutan';
    setColor(document.getElementById('hr'), "#ff9999");
    setColor(document.getElementById('checkPromiseTD'), "#ff9999");
    
  }
  else{
    setColor(document.getElementById('hr'), "white");
    setColor(document.getElementById('checkPromiseTD'), "white");
  }
  */
    

  if(f){
    newAlert('Korrigera följande innan du går vidare: ', 
	     '<b>' + errorStr + '</b>');    
    return false;     			
  }              
  
  document.regForm.lastName.readonly = true;
  
  document.regForm.address.readonly = true;				
  
  document.regForm.zipCode.readonly = true;
  
  document.regForm.postalAddress.readonly = true;              
    
  if(checkConfig() == false)
    return false;
}


function checkBilling(){
    var f = 0;
    if(document.regForm.socialSecNo.value.length < 10)
	f = 1;
      
    //else if(document.regForm.firstName.value.length == 0)
    //f = 1;
    //else if(document.regForm.lastName.value.length == 0)
    //f = 1;		
    //else if(document.regForm.address.value.length == 0)
    //f = 1;
    //else if(document.regForm.zipCode.value.length == 0)
    //f = 1;				
    //else if(document.regForm.postalAddress.value.length == 0)
    //f = 1;
    //else if(document.regForm.phoneNo.value.length < 6)
    //f = 1;
    //else if(document.regForm.email.value.length < 7)
    //f = 1;
    
    if(f){
      newAlert('Korrigera följande innan du går vidare: ','Fyll i ditt personnummer innan du väljer betalsätt');
      document.getElementById("ccardbutton").checked = true;
      document.getElementById("billmeradio").checked = false;
      hideKreditorInfo()
	return false;     			
    }              
    
    document.regForm.lastName.readonly = true;
				
    document.regForm.address.readonly = true;				

    document.regForm.zipCode.readonly = true;
				
    document.regForm.postalAddress.readonly = true;            
    
    getAddr(document.getElementById("socialSecNo"));
              
}

function showKreditorInfo(){
  //document.getElementById("KreditorInfo").style.visibility="visible";
  
  document.getElementById("KreditorInfo").style.display="inline";
//  document.getElementById("CreditCardInfo").style.display="none";
  
}

function hideKreditorInfo(){
  //document.getElementById("KreditorInfo").style.visibility="hidden";
  
//  document.getElementById("CreditCardInfo").style.display="inline";
  document.getElementById("KreditorInfo").style.display="none";
  
}

function showLoadingSign(){
    document.getElementById("loaddiv_customer").style.visibility="visible";
}

function loadingSignOff(){
    document.getElementById("loaddiv_customer").style.visibility="hidden";
}
	

function getAddr(pclass){
  pno = pclass.value;
  
  if(pno.substr(0,2) == '19'){
    pno = pno.substr(2);
    
    if(pno.substr(7,1)!= '-')
      pno = pno.substr(0,6) + '-' + pno.substr(6);
  }
  else{
    if(pno.substr(6,1)!= '-')
      pno = pno.substr(0,6) + '-' + pno.substr(6);
  }
  
  
  pclass.value = pno;
  
  if(validatePNum(pno) == false){
    newAlert("Felaktig inmatning", "Ditt personnummer är inte korrekt");
    setColor(pclass, "#ff9999");  
    return;
  }  
  else
    setColor(pclass, "white");
  
  var para = 'kreditorReturn';
  
  document.regForm.socialSecNo.disabled = true;
  
  document.regForm.firstName.disabled = true;		
  
  document.regForm.lastName.disabled = true;
  
  document.regForm.address.disabled = true;
  
  document.regForm.careOf.disabled = true;		
  
  document.regForm.zipCode.disabled = true;
  
  document.regForm.postalAddress.disabled = true;
  
  document.regForm.phoneNo.disabled = true;
  
  document.regForm.mobilePhoneNo.disabled = true;
  
  document.regForm.email.disabled = true;
  
  //showLoadingSign();                  
  waitShow("Hämtar information", "Hämtar information från folkbokföringsregistret");
  
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) {
      http_request.overrideMimeType("application/x-www-form-urlencoded");
      // See note below about this line
    }
  } else if (window.ActiveXObject) { // IE
    try {
      http_request = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
      try {
	http_request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {}
    }
  }
  
  if (!http_request) {
    newAlert('System fail', 'Giving up Cannot create an XMLHTTP instance');
    return false;
  }
  
  http_request.onreadystatechange = function() { fillCustObj(http_request);};
  http_request.open('POST', "index.php?kreditorReturn&pnum=" + pno, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  
  //http_request.setRequestHeader("Content-length", para.length);
  //http_request.setRequestHeader("Connection", "close");
  
  http_request.send(para);
  
  
  
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function fillCustObj(http_request) {    	
    if (http_request.readyState == 4) {
	
	if (http_request.status == 200) {	                
	  
	    field_array = explodeArray(http_request.responseText, '§');
				
	    document.regForm.lastName.value=trim(field_array[0]);
	    	    	    				
	    document.regForm.address.value=field_array[1];	
		
	    document.regForm.zipCode.value=field_array[2];	
				
	    document.regForm.postalAddress.value=field_array[3];
		
		
	    //if(document.getElementById('billmeradio').checked){
	    
	    //document.regForm.lastName.disabled = true;
				
	    //document.regForm.address.disabled = true;				
	    
	    //document.regForm.zipCode.disabled = true;
				
	    //document.regForm.postalAddress.disabled = true;
	    //}
	    //
		
		
	    document.regForm.lastName.disabled = false;
				
	    document.regForm.address.disabled = false;				

	    document.regForm.zipCode.disabled = false;
				
	    document.regForm.postalAddress.disabled = false;
						

	    document.regForm.socialSecNo.disabled = false;

	    document.regForm.firstName.disabled = false;		
				
	    document.regForm.careOf.disabled = false;		

	    document.regForm.phoneNo.disabled = false;

	    document.regForm.mobilePhoneNo.disabled = false;

	    document.regForm.email.disabled = false;			
	    	    
	    //document.getElementById("irubrik").style.visibility="hidden";
	    //document.getElementById("ccard").style.visibility="hidden";
	    //document.getElementById("billme").style.visibility="hidden";
	    
	    //i = 0;
	    //while(i<10000)
	    //	i++;
	
	    //loadingSignOff();
	    waitHide();
	    
	    if(document.regForm.lastName.value.length < 2){
	      newAlert("Ej hittad",
		       "Din adress hittades ej, kortköp endast möjligt");
	      
	      document.getElementById("ccardbutton").checked = true;
	      document.getElementById("billmeradio").checked = false;
	      hideKreditorInfo();	    
	    }
	    
	    
	    document.regForm.firstName.focus();	    
	    
	} else {
	  newAlert('System fail', 'There was a problem with the request.');
	}			
    }    
}

function explodeArray(item,delimiter) {
    tempArray=new Array(1);
    var Count=0;
    var tempString=new String(item);

    while (tempString.indexOf(delimiter)>0) {
	tempArray[Count]=tempString.substr(0,tempString.indexOf(delimiter));
	tempString=tempString.substr(tempString.indexOf(delimiter)+1,tempString.length-tempString.indexOf(delimiter)+1);
	Count=Count+1
	    }

    tempArray[Count]=tempString;
    return tempArray;
} 




function makeRequest(form) {
  sendArtsToCart();
  
  var para = '';
  
  for (var i=0;i < form.elements.length; i++){         
        para = para + form.elements[i].name + '='; 
	
	if(i < 4){
	    para = para + form.elements[i].value + "&";
	}
	else {
	  
	    para = para + form.elements[i].options[form.elements[i].selectedIndex].text + "&";
	    form.elements[i].disabled = true;
	}
	
    }
    para = para + 'ajax = 1';
          
    // var http_request = false;
    
    //     if (window.XMLHttpRequest) { // Mozilla, Safari,...
    // 	http_request = new XMLHttpRequest();
    // 	if (http_request.overrideMimeType) {
    // 	    http_request.overrideMimeType('text/xml');
    // 	    // See note below about this line
    // 	}
    //     } else if (window.ActiveXObject) { // IE
    // 	try {
    // 	    http_request = new ActiveXObject("Msxml2.XMLHTTP");
    // 	} catch (e) {
    // 	    try {
    // 		http_request = new ActiveXObject("Microsoft.XMLHTTP");
    // 	    } catch (e) {}
    // 	}
    //     }
    
    //     if (!http_request) {
    //       newAlert('System fail', 'Giving up :( Cannot create an XMLHTTP instance');
    //       return false;
    //     }
    //     http_request.onreadystatechange = function()
    // 	{ 
    // 	    alertContents(http_request, form); 
    
    // 	};
    

    //document.getElementById("loaddiv_lenses").style.visibility="visible";
        
    // http_request.open('POST', "index.php", true);
    //     http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    
    // http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=ISO-8859-1");
    // http_request.send(para);
    
    
        
    waitShow("Kalkylerar linsvärde...", "Kalkylerar linsvärde...");
    
    var alertContents = function (o) {
      el = get_area("articleContents", form.a_index.value);
      
      if(typeof(el) != "object"){
	waitHide();	    	          	
	return;      	
      }
      
      // if(typeof(el.childNodes) != "object" || typeof(el.childNodes) != "function"){ //function because of safari bug
      // 	waitHide();	    	          
      // 	return;      
      //       }
      
      while( el.childNodes.length > 0 ){
	el.removeChild(el.firstChild );
      }
      
      el.innerHTML = o.responseText;
      waitHide();	    	          
    }     
    
    var callback =   
      {   
	success:alertContents,   
	failure: failureHandler
      };   
    
    var request = YAHOO.util.Connect.asyncRequest('POST', 'index.php?' + para, callback);  
    
}

function get_area(obj, a_index) {
    //a_index = a_index - 1;
    //alert(a_index);
    
    var toggle = document.all[obj];
    if (toggle.length != undefined && a_index > 0 )
        {
	    return toggle[a_index];            
        }
    else
        {
            var toggle = document.getElementById(obj);
            if (toggle != null)
		{   
		    return toggle;
		}
            else
		{
		  newAlert("System fail", "No data to display for "+obj);
		}
        }
}
/**
*
*  UTF-8 data encode / decode
*  http://www.webtoolkit.info/
*
**/
 
var Utf8 = {
 
	// public method for url encoding
	encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	},
 
	// public method for url decoding
	decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;
 
		while ( i < utftext.length ) {
 
			c = utftext.charCodeAt(i);
 
			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}
 
		}
 
		return string;
	}
 
}

