//Written by Gudjon Holm Sigurdsson | gudjon@undri.com

//the function returns the content of a file in a string if successful

//the function returns an empty string if failed.

//Example:  var str=getFile('http://www.anydomain.com/textfile.txt');



function loadxml(dname)

{

	if (window.XMLHttpRequest)

	  {

	  xhttp=new XMLHttpRequest();

	  }

	else

	  {

	  xhttp=new ActiveXObject("Microsoft.XMLHTTP");

	  }

	xhttp.open("GET",dname,false);

	xhttp.send();

	return xhttp.responseXML;

}

//virkar ekki heima, þarf að uploada

var g_strXmlFile=loadxml('../data/QVaraWeb.xml');

var g_strXmlFileIndex=-1;



function setIndex(FindMe)

{	

	var id=g_strXmlFile.getElementsByTagName("id"),

		rows=id.length,r=0;

	while (r<rows)

	{

		if(id[r].childNodes[0].nodeValue==FindMe)

		{

			g_strXmlFileIndex=r;

			return g_strXmlFileIndex;

		}

		r++;

	}

	return -1;

}

//Searches for FindMe in InStr and returns a string where FindMe starts in InStr and all which is right of FindMe in InStr.

function findStr(FindMe, InStr)

{

	var i=InStr.indexOf(FindMe);

	if (i<0)

		return "";

	return newStr = InStr.substring(i);

}





//0 er fyrsti dálkur, 1 er annar dálkur o.s.fr.

function getDalkur(uiDalkur, str)

{

    var uiCount=0;

    var iPos;

    var i;

    var iLen=0;

    var delimiter='|';





   for (i=0;i<str.length;i++)//find endl

   {

	if(str.charAt(i)==String.fromCharCode(10))

	{

          iLen=i;

	  break;

	}

   }





    if(iLen>0)

	str=str.substring(0,iLen);//remove endl chars



   for (i=0;i<str.length;i++)//counting the fields

   {

	if(str.charAt(i)==delimiter)

          uiCount=uiCount+1; //(dálkafjöldi = uiCount+1);

   }



    if (uiCount<1 || uiDalkur>uiCount)

	return "Villa í dálkafjölda";

	



        iPos=str.indexOf(delimiter); //finna fyrsta marker



    for(i=0;i<uiDalkur;i++)//finna marker fyrir 

    {

        str=str.substring(iPos+1,str.length);

	iPos=str.indexOf(delimiter);

    }



 //   if (str==delimiter)

//	str="";

//    else

      if (uiDalkur==uiCount)

	str=str.substring(iPos+1,str.length-1);

      else

       	str=str.substring(0,iPos);





    return str;

}



//USAGE:

//to get current path call extractPath();

//to get parent directory call extractPath(extractPath());

function extractPath(InStr)

{

	if(!InStr || InStr.length<1)

		InStr = location.href;

	var RetStr="";

	var i=0,

		x=0,

		Len=InStr.length;

		

	for(i=Len-1; i>-1;i--){

		if (InStr.charAt(i)=='/')

		{	x=i;

			break;

		}

	}

	if (x>0)

	{	for(i=0;i<x;i++)

		RetStr+=InStr.charAt(i);

	}

	return RetStr;

}



//lætur punkt í tölu þar sem við.  Dæmi 9999 verður að 9.999



function insertStr(i, insertMe, str)

{

	var sRet=str.substring(0,i);

	sRet+=insertMe;

	sRet+=str.substring(i,str.length);

	return sRet;

	

}

//notaðu frekar fallið ISK

function writeCurr(number)

{

	var sNum=number.toString();	

	var iLen=sNum.length;

	var i;

	var str=sNum;

	for(i=iLen-3;i>0;i-=3)

	{

		str=insertStr(i, '.', str);

	}

	return str;		

}

//ef kommur = fjöldi aukastafa

function ISK(number, kommur)

{

	var str=number.toFixed(kommur),

		sHeil,sKomma='',len,i;

		i=str.indexOf('.');

		if(i>0)

		{

			sHeil=str.substr(0,i);

			sKomma=','+str.substr(i+1);

			if (sKomma==',0')

			{sKomma='';}

		}

		else

		{sHeil=str;}

		len=sHeil.length;

	

	for(var x=len-3;x>0;x-=3)

	{	

		sHeil=insertStr(x, '.', sHeil);

	}

	

	return sHeil+sKomma;

}

function getID()

{

  if (g_strXmlFileIndex>-1)

	return g_strXmlFile.getElementsByTagName("id")[g_strXmlFileIndex].childNodes[0].nodeValue;

  return '';

}

function getNafn()

{

  if (g_strXmlFileIndex>-1)

	return g_strXmlFile.getElementsByTagName("name")[g_strXmlFileIndex].childNodes[0].nodeValue;

  return '';

}

function getVerd(strID)

{



  //var str=getFile('http://www.undri.is/cgi-bin/v.csv');

  //return getDalkur(2, findStr(strID, str));

  //g_strXmlFileIndex=;

  if (g_strXmlFileIndex>-1)

	return g_strXmlFile.getElementsByTagName("price")[g_strXmlFileIndex].childNodes[0].nodeValue;

  return '';

}



//skilar verði í streng ákveðinnar vöru sem formöttuð er sem ISK þ.e.a.s "9999" verður "9.999 kr"

function getVerdStr(strID)

{

  return writeCurr(getVerd(strID))+' kr';

}



function getLitrar(strID)

{

	var i=strID.lastIndexOf("-");

	if (i<0) return 0;

	var iRet=0;

	switch(strID.substring(i))

	{

		 case '-0005': iRet=0.5; break;

		 case '-001U': iRet=1; break;		 

		 case '-001' : iRet=1; break;

		 case '-005' : iRet=5; break;

		 case '-020' : iRet=20; break;

		 case '-020U': iRet=20; break;

		 case '-200' : iRet=200; break;

		 case '-200U': iRet=200; break

		 case '-1000': iRet=100; break;

	}

	return iRet;

}



//skilar lítraverði í streng ákveðinnar vöru sem formöttuð er sem ISK þ.e.a.s "9999" verður "9.999 kr"

function getLitraVerd(strID)

{

 // var str=getFile('http://www.undri.is/cgi-bin/v.csv');

 // var verd=getDalkur(2, findStr(strID, str));

 // var litrar=getDalkur(5, findStr(strID, str));



 if (g_strXmlFileIndex<0)

 return 0;



  var verd=g_strXmlFile.getElementsByTagName("price")[g_strXmlFileIndex].childNodes[0].nodeValue;

  var litrar=getLitrar(g_strXmlFile.getElementsByTagName("id")[g_strXmlFileIndex].childNodes[0].nodeValue);

  if (litrar>0 && verd>0)

  	return writeCurr(Math.ceil(verd/litrar))+' kr';



	return 0;

}

//check if the next sibling node is an element node
function getNextsibling(n)
{
  x=n.nextSibling;
  while (x.nodeType!=1)
  {
    x=x.nextSibling;
  }
  return x;
}

function getSiblingValue(node, strName)
{
  var y=getNextsibling(node);
  while (y)
  {
     if (y.nodeName==strName)
     {
      return y.childNodes[0].nodeValue;
     }

     y=getNextsibling(y);
  }

}
//depended on setIndex(..
function getSiblingNode(strNodeName)
{

  var str="";

	if (g_strXmlFileIndex>-1)
        {
           var obj=g_strXmlFile.getElementsByTagName("id")[g_strXmlFileIndex];
           if (obj)
           {
             str=getSiblingValue(obj,strNodeName);
           }
       }

  return str;

}
//depended on setIndex(..
function getBarcode()
{
 return getSiblingNode("barcode");
}
//depended on setIndex(..
function getBarcodeout()
{
 return getSiblingNode("barcodeout");
}


//finnur strID og skilar sjálfsgildismagni vöru

function getUnits(strID)

{

//  var str=getFile('http://www.undri.is/cgi-bin/v.csv');

//  return ""+getDalkur(3, findStr(strID, str));

	if (g_strXmlFileIndex>-1)

	return g_strXmlFile.getElementsByTagName("units")[g_strXmlFileIndex].childNodes[0].nodeValue;

  return '';

}

