
function setCart(xml){//set cart from updated xml
var sum="0";
var totalQuantity="0";

//build minicart
var miniCart=document.getElementById("miniCart");
var h3 = document.createElement("h3");
var p = document.createElement("p");
var strong1 = document.createElement("strong");
var strong2 = document.createElement("strong");

var miniCartLinks=document.getElementById("miniCartLinks");
var li1= document.createElement("li");
var li2= document.createElement("li");
//var a1= document.createElement("a");
var a2= document.createElement("a");

var browserName=navigator.appName;

	if (browserName=="Microsoft Internet Explorer"){//explorer
		var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  		xmlDoc.async="false";
  		xmlDoc.loadXML(xml);
	}
	else{
		//firefox
		var parser=new DOMParser();
  		var xmlDoc=parser.parseFromString(xml,"text/xml");	
	}

	if(xmlDoc.getElementsByTagName("sum") && xmlDoc.getElementsByTagName("sum")[0] && xmlDoc.getElementsByTagName("sum")[0].childNodes[0] && xmlDoc.getElementsByTagName("sum")[0].childNodes[0].nodeValue!=undefined){
		sum=xmlDoc.getElementsByTagName("sum")[0].childNodes[0].nodeValue;
		totalQuantity=xmlDoc.getElementsByTagName("totalQuantity")[0].childNodes[0].nodeValue;
	}


	if(parseInt(totalQuantity)>0 && parseInt(sum.substr(4))>0){//show cart
    	while (miniCart.childNodes.length > 0){
      		miniCart.removeChild(miniCart.firstChild); //remove text
    	}
		
		while (miniCartLinks.childNodes.length > 0){
      		miniCartLinks.removeChild(miniCartLinks.firstChild); //remove text
    	}
	
		//build miniCart
		h3.appendChild(document.createTextNode(propertyCart));
		strong1.appendChild(document.createTextNode(sum));
		strong2.appendChild(document.createTextNode(totalQuantity));
    	p.appendChild(strong2);
	
		if(parseInt(totalQuantity)==1){
			p.appendChild(document.createTextNode(" "+propertySingelpost+", "));
		}
		else if(parseInt(totalQuantity)>1){
			p.appendChild(document.createTextNode(" "+propertyMultipost+", "));
		}

		p.appendChild(strong1);
		p.appendChild(document.createTextNode(" "+propertyTotal));
		miniCart.appendChild(h3);
		miniCart.appendChild(p);
		
		//build miniCartLinks
		//a1.setAttribute("href", "/arken/ehk/ehk.xhtml");
		//a1.appendChild(document.createTextNode(propertyLinkwholecart));
	
		// FIXME: shaata byt kommentar fix for test
		//a2.setAttribute("href", "/arkenQ/ehk/ehk.xhtml");
		a2.setAttribute("href", "/arken/ehk/ehk.xhtml?siteLang="+checkLang());
		a2.appendChild(document.createTextNode(propertyLinktocart));
	
		//li1.appendChild(a1);
		li2.appendChild(a2);
		//miniCartLinks.appendChild(li1);
		miniCartLinks.appendChild(li2);

    	document.getElementById("miniCart").style.display="block";
		document.getElementById("miniCartLinks").style.display="block";
	}
	else{//hide empty cart
		document.getElementById("miniCart").style.display="none";
		document.getElementById("miniCartLinks").style.display="none";
	}
	
}

function checkLang(){
  var url=window.location+"";
  if(url.indexOf("locale=en_US")>-1 || document.getElementById("putInBasket").value=="Add to cart"){
	return "en_US";
  }
  else{
	return "sv_SE";
  }
  
}

function buildCartXml(){//build xml when user add to cart

var sum="";
var totalQuantity="";
var base="";
var ktun="";
var subdoc="";
var page="";
var pagenumber="";
var quantity="";
var name="";
var link="";
var size="";
var price="";
var archive="";
var documentAccessCode="";
var nbOfImages="";
var documentAccessCode="";
var karta="";
var akt="";
var digital="";
var utskrift="";
var productType="";
var format="";

base=document.getElementById("sd_base").value;
ktun=document.getElementById("sd_ktun").value;
subdoc=document.getElementById("subdoc").value;
page=document.getElementById("page").value;
//pagenumber=document.getElementById("pageNumber").value;
archive=document.getElementById("archive").value;
nbOfImages=document.getElementById("nbOfImages").value;
documentAccessCode=document.getElementById("documentAccessCode").value;

if(subdoc=="" && page==""){
	link="/arken/s/showDjVu.html?base="+base+"&amp;ktun="+ktun;
}
else if(subdoc!="" && page!=""){
	link="/arken/s/showDjVu.html?base="+base+"&amp;ktun="+ktun+"&amp;subdoc="+subdoc+"&amp;page="+page;
}

name=document.getElementById("cartname").value;
var chooseProduct = document.getElementById("chooseProduct").options[document.getElementById("chooseProduct").selectedIndex].value;
if(chooseProduct=="digitalproductact"){
	if(checkLang()=="en_US"){
		productType="act";
		format="digital(DjVu)";
	}
	else{
		productType="akt";
		format="digital(DjVu)";
	}
}
else if(chooseProduct=="digitalproductpage"){
	if(checkLang()=="en_US"){
		productType="page";
		format="digital(DjVu)";
	}
	else{
		productType="sida";
		format="digital(DjVu)";
	}
}
else if(chooseProduct=="printedproduct"){
	if(checkLang()=="en_US"){
		productType="page";
		format="printed";
	}else{
		productType="sida";
		format="utskrift";
	}
}


xml="<?xml version='1.0'?>";
xml+="<products>";
  xml+="<sum></sum>";
  xml+="<totalQuantity></totalQuantity>";
  xml+="<product>";
    xml+="<anbi>"+nbOfImages+"</anbi>";
  	xml+="<pul>true</pul>";
    xml+="<base>"+base+"</base>";
    xml+="<ktun>"+ktun+"</ktun>";
	
	xml+="<pages>";
		if(chooseProduct!="digitalproductact"){
			xml+="<subDoc-page>"+subdoc+","+page+"</subDoc-page>";
		}
		else if(chooseProduct=="digitalproductact"){
			xml+=getSubDocPages();
		}
	xml+="</pages>";
	
    xml+="<quantity>"+quantity+"</quantity>";
    xml+="<name>"+name+"</name>";
    xml+="<link>"+link+"</link>";
    xml+="<size></size>";
    xml+="<price></price>";

	xml+="<type>"+productType+"</type>";
	xml+="<delivery>"+format+"</delivery>";
			
  xml+="</product>";
xml+="</products>";
return xml;
}


function getSubDocPages(){
	var xml="";
	if(document.getElementById("subdocPage") && document.getElementById("subdocPage").value!=""){
		var subdocPageArray=document.getElementById("subdocPage").value.split(",");
		for (var i=0; i<subdocPageArray.length-1; i++) {
			subdocPage=subdocPageArray[i].split(":");
			xml+="<subDoc-page>"+subdocPage[0]+","+subdocPage[1]+"</subDoc-page>";
		}
	}
	return xml;
}

function chooseProductFunc(){//show or hide pageNumber
	if(document.getElementById("chooseProduct")){
		var chooseProduct = document.getElementById("chooseProduct").options[document.getElementById("chooseProduct").selectedIndex].value;
		if(chooseProduct=="digitalproductact" || chooseProduct=="chooseproduct"){
			document.getElementById("showHidePageNumber").style.display="none";
		}
		else{
			document.getElementById("showHidePageNumber").style.display="block";
		}
	}
}


function putInBasketFunc(){
	var nbOfImages=document.getElementById("nbOfImages").value;
	clearErrorMessage();//clear the error message
	if(document.getElementById("chooseProduct") && document.getElementById("chooseProduct").options[document.getElementById("chooseProduct").selectedIndex].value!="chooseproduct"){
		var maxPagenumber=document.getElementById("nbOfImages").value;
		var pageNumber=document.getElementById("pageNumber").value;
		var chooseProduct = document.getElementById("chooseProduct").options[document.getElementById("chooseProduct").selectedIndex].value;
		
		if(chooseProduct=="digitalproductpage" || chooseProduct=="printedproduct"){
			if(pageNumber==""){
				errorHandlerCart(propertyNumber);
				return false;
			}
			if(!checkInteger(pageNumber)){
				return false;
			}
			if(parseInt(pageNumber)=="0"){
				errorHandlerCart(propertyLownumber + " "+ maxPagenumber);
				return false;
			}
			if(parseInt(pageNumber)>parseInt(maxPagenumber)){
				errorHandlerCart(propertyHeighnumber + " " + maxPagenumber);
				return false;
			}
			setSubdocPage();//set subdoc and page corresponding to the page user has typed in
			xml=buildCartXml();
	        getUpdatedCartXml(xml);
		}
		else{//if digital product (akt) then empty pageNumber, page and subdoc
			if(parseInt(nbOfImages)>2000){
				errorHandlerCart(propertyTomanyPages);
				return false;
			}
			document.getElementById("pageNumber").value="";
			document.getElementById("page").value="";
			document.getElementById("subdoc").value="";
			xml=buildCartXml();
		    getUpdatedCartXml(xml);
		}
	}
	else{
		errorHandlerCart(propertyChooseProduct);
	}
}

function regReceiverSubdocPage(searchresult){
    var subdocPageArray=searchresult.split(":");
	document.getElementById("subdoc").value=subdocPageArray[0];
	document.getElementById("page").value=subdocPageArray[1];
	
	xml=buildCartXml();
	getUpdatedCartXml(xml);
}

function setSubdocPage(){//set subdoc and page
	 var subdocAndPage=document.getElementById("subdocPage").value;
	 var pageNumber=document.getElementById("pageNumber").value;//value user has entered
	 var subdocPageArray;
	 var subdocPage;
	 
	 subdocPageArray=subdocAndPage.split(",");
	 subdocPage=subdocPageArray[parseInt(pageNumber-1)];
	 subdocPageArray=subdocPage.split(":");
	 document.getElementById("subdoc").value=subdocPageArray[0];
	 document.getElementById("page").value=subdocPageArray[1];	 
}

function checkInteger(pageNumber){//check if pageNumber is integer
var re = new RegExp("^[0-9]+$");
  	if(!pageNumber.match(re)) {
		errorHandlerCart(propertyValidnumber);
    	return false;
  	} 
	return true;
}

function loadXMLDocString(xml){
	var xmlDoc;
	// code for IE
	if (window.ActiveXObject){
  		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.async=false;
      xmlDoc.loadXML(xml);
  	}
	// code for Mozilla, Firefox, Opera, etc.
	else if (document.implementation && document.implementation.createDocument){
  		xmlDoc=document.implementation.createDocument("","",null);
      var parser=new DOMParser();
			xmlDoc=parser.parseFromString(xml,"text/xml");
    }
	else{
		errorHandlerCart("Your browser cannot handle this script");
  	}
	return(xmlDoc);
}
