var globalsCurrencyHtml;
var globalsCurrencyBinary;

function Microsoft()
{
if (document.all&&document.styleSheets) return true;
return false;
}

function Netscape()
{
if (navigator.appName=="Netscape") return true;
return false;
}

function Mozilla()
{
if (document.getElementById&&!document.all) return true;
return false;
}

function Opera()
{
var userAgent=navigator.userAgent;
if (userAgent.search("Opera")!=-1) return true;
return false;
}

function FocusFormElement(formName,elementName)
{
if (document.forms[formName]) eval("document.forms[formName]."+elementName+".focus()");
else if (document.GetElementById) eval("document.GetElementById(formName)."+elementName+".focus();");
}

function GetFormObject(formName)
{
if (document.forms[formName]) return document.forms[formName];
else if (document.GetElementById) return document.GetElementById(formName);
}

function SubmitForm(name)
{
if (document.forms[name]) document.forms[name].submit();
else if (document.GetElementById) document.GetElementById(name).submit();
/*
if (!Netscape()||Mozilla()) eval('document.forms["'+name+'"].submit();');
else eval('document.'+name+'.submit();');
*/
}

function SetFormEnabled(formName,elementName,value)
{
if (!Netscape()||Mozilla()) document.forms[formName].elements[elementName].disabled=value^1;
else eval('document.'+formName+'.'+elementName+'.disabled='+value^1);
}

function SetFormValue(formName,elementName,value)
{
if (!Netscape()||Mozilla()) document.forms[formName].elements[elementName].value=value;
else eval('document.'+formName+'.'+elementName+'.value='+value);
}

function GetCheckboxValue(formName,elementName)
{
//alert(document.forms[formName].elements[elementName].checked);
if (!Netscape()||Mozilla()) return document.forms[formName].elements[elementName].checked;
else return eval('document.'+formName+'.'+elementName+'.checked');

}

function AskDelete(dropId,link)
{
var txt="Sind Sie sicher den Datensatz mit der Id '"+dropId+"' zu entfernen?";
if (confirm(txt))
{
location.href=link;
}
}

function AskLink(query,link)
{
var txt=query;
if (confirm(txt))
{
location.href=link;
}
}

function ChangeLayerContent(name,content)
{
if (!Netscape())
{
document.all[name].innerHTML=content;
}
else
{
if (!Mozilla())
{
document.layers[name].document.open();
document.layers[name].document.write(content);
document.layers[name].document.close();
}
else document.getElementById(name).innerHTML=content;
}
}

function RoundUp(wert,stellen)
{
if (parseInt(wert)==wert) return wert;
return Round(wert+0.5,stellen);
}

function RoundDown(wert,stellen)
{
if (parseInt(wert)==wert) return wert;
return Round(wert-0.5,stellen);
}

function Round(wert,stellen)
{
addstr=Math.pow(10,stellen).toString().substring(1)
wert=Math.round(wert*Math.pow(10,stellen))/Math.pow(10,stellen)

if (stellen>0)
{
if(wert.toString().indexOf(".")==-1) wert=wert+"."+addstr;
else
{
if(wert.toString().substring(wert.toString().indexOf(".")+1).length<addstr.length)
wert=wert.toString()+addstr.substr(0,(addstr.length-wert.toString().substring(wert.toString().indexOf(".")+1).length))
}
}
else
{
//alert(wert);
//    if(wert.toString().indexOf(".")==-1) wert=wert+1;
}
return wert;
}

var productDetailPicArray;
function ChangeProductDetailPic(dropDownNr)
{
var formObj;
if (document.forms["addToBasketForm"]) formObj=document.forms["addToBasketForm"];
else if (document.GetElementById("addToBasketForm")) formObj=document.GetElementById("addToBasketForm");
else alert("form not found");

//  var pos=document.forms['addToBasketForm'].elements['varPosArray['+dropDownNr+']'].value;
var pos=formObj.elements['varPosArray['+dropDownNr+']'].value;
document.getElementById('varProductNameArray['+dropDownNr+']').value = productNameArray[dropDownNr][pos-1];

var htmlStr;
if (productDetailPicArray[dropDownNr][pos-1]) htmlStr="<img src='"+productDetailPicArray[dropDownNr][pos-1]+"'>";
else return;
ChangeLayerContent("productPic",htmlStr);
}

var productDetailVarAddPriceArray;
var productDetailBasePrice;
var productDetailFoundVariationGroups;
var productDetailProductUnit="";
var productDetailVEUnit="";
function ChangeProductDetailPriceOnVariationAddPrice()
{
var formObj;
if (document.forms["addToBasketForm"]) formObj=document.forms["addToBasketForm"];
else if (document.GetElementById("addToBasketForm")) formObj=document.GetElementById("addToBasketForm");
else alert("form not found");

var pos;
var newPrice=parseFloat(productDetailBasePrice);
var newPriceOnUnitsPerPackage=0;
var unitsPerPackage=1;

for (var i=0;i<productDetailFoundVariationGroups;i++)
{
if (typeof(formObj.elements['varPosArray['+i+']']) != "undefined")
{
pos=formObj.elements['varPosArray['+i+']'].value;
if (productDetailVarAddPriceArray[i][pos-1]) newPrice+=parseFloat(productDetailVarAddPriceArray[i][pos-1]);
}
}
//----------------------------------------------------------------------------
// Check if unitsPerPackage
unitsPerPackage=document.forms["addToBasketForm"].unitsPerPackage.value;
if (unitsPerPackage!=0 && unitsPerPackage!=1)
{
newPriceOnUnitsPerPackage=newPrice*unitsPerPackage;
}
//----------------------------------------------------------------------------

var htmlStr;
newPrice=Round(newPrice,2);
//----------------------------------------------------------------------------
if (unitsPerPackage!=1 && unitsPerPackage!="")
{
newPriceOnUnitsPerPackage=Round(newPriceOnUnitsPerPackage,2);
htmlStr=newPrice+" "+globalsCurrencyBinary+" / "+productDetailProductUnit+"<br>";
htmlStr+="<span style='font-size:10px; font-weight:normal;'>"+newPriceOnUnitsPerPackage+" "+globalsCurrencyBinary+" / "+productDetailVEUnit+"</span>";
}
else
{
htmlStr=newPrice+" "+globalsCurrencyBinary;
}
ChangeLayerContent("productPrice",htmlStr);
formObj.addBasketProductPrice.value=newPrice;
//----------------------------------------------------------------------------
}

var productDetailGraduatedPiecesArray=Array();
var productDetailGraduatedPriceArray=Array();
function ChangeProduktDetailPrice(obj,maxGraduatedSteps,maxPiecesInFormElement)
{
if (maxPiecesInFormElement>0)
{
if (obj.form.addBasketPieces.value>maxPiecesInFormElement)
{
obj.form.addBasketPieces.value=maxPiecesInFormElement;
}
}

if (maxGraduatedSteps<=1) return;
var value=obj.value;
var htmlStr;


for (i=0;i<maxGraduatedSteps;i++)
{
if (value<productDetailGraduatedPiecesArray[i])
{
if (i==0) htmlStr=productDetailGraduatedPriceArray[0];
else htmlStr=productDetailGraduatedPriceArray[i-1];
break;
}
else if (i>=maxGraduatedSteps-1)
{
htmlStr=productDetailGraduatedPriceArray[i];
}
}

ChangeLayerContent("productPrice",htmlStr);
}

function IsEmailValid(email)
{
if (email.search(/.+@+./)==-1) return false;
if (email.search(/.+[.]+./)==-1) return false;
if (email.length<5) return false;
return true;
}

var globalMousePosX=0;
var globalMousePosY=0;

function SaveMousePos(e)
{
if(Netscape()||Mozilla())
{
globalMousePosX=e.pageX;
globalMousePosY=e.pageY;
}
else if(Microsoft()||Opera())
{
globalMousePosX=document.body.scrollLeft+event.clientX;
globalMousePosY=document.body.scrollTop+event.clientY;
}
}

function IsIE6_And_SP_Installed()
{
if (typeof (navigator.appMinorVersion) != "undefined")
{
if (navigator.appMinorVersion.substr(1,2)=='SP') return true;
}
return false;
}


function ChangeStock(variationGroupsCount,showProductAvailableFrom,availableInProductsTable,tmpAvail,newWareHouseStockArray,variationCnt)
{
var unlimited="unbegrenzt";
var posArray=new Array();
var productAvailableUnlimited=-2147283648;


for (var i=0;i<variationGroupsCount;i++)
{
var tmpSelectionName="varPosArray["+i+"]";
var varGroupId="varGroupIdArray["+i+"]";
posArray[document.getElementById(varGroupId).value]=document.getElementById(tmpSelectionName).value;
}


for (var i=0;i<variationCnt;i++)
{
var variationStr=newWareHouseStockArray[i];

variationStrArray=variationStr.split(",");

var cmpStr1=variationStr.replace(variationStrArray[4],"");
var cmpStr1=cmpStr1.replace("0,","");

var cmpStr2="";
for (var j=0;j<variationGroupsCount;j++)
{
var tmpSelectionName="varPosArray["+j+"]";
var varGroupId="varGroupIdArray["+j+"]";
cmpStr2=cmpStr2+posArray[document.getElementById(varGroupId).value];
cmpStr2=cmpStr2+",";
}

do
{
cmpStr2=cmpStr2+"0,";
} while (cmpStr1.length>cmpStr2.length);

//alert(cmpStr1+" ist gleich "+cmpStr2);

if (cmpStr1==cmpStr2)
{
var ergStr=variationStrArray[4];
ergStr=ergStr.replace("0:","");

var xPos=ergStr.search(/-.+/);
var warehouseId=ergStr.slice(0,xPos);
var stockStr=ReplaceStr("-","",ergStr);
var tmpStock=ReplaceStr(warehouseId,"",stockStr);
}
}

for (var i=0;i<15;i++)
{
if (typeof(posArray[i+1])=="undefined") posArray[i+1]=0;
}

//document.getElementById("warehouseId").value=wareHouseRecIdArray[posArray[5]][posArray[4]][posArray[3]][posArray[2]][posArray[1]];
document.getElementById("warehouseId").value=warehouseId;

if (showProductAvailableFrom>1)
{
//stock=warehouseStockArray[posArray[5]][posArray[4]][posArray[3]][posArray[2]][posArray[1]];
stock=tmpStock;
if (stock==0) stock=tmpAvail;
if (!stock) stock=tmpAvail;
}
else stock=availableInProductsTable;

if (showProductAvailableFrom==1) stock=availableInProductsTable;
else if (showProductAvailableFrom==3)
{
if (availableInProductsTable==productAvailableUnlimited) stock=productAvailableUnlimited;
//else stock+=availableInProductsTable;
}

if (stock=="") stock=0;

if (isNaN(stock)) stock=0;

if (stock==productAvailableUnlimited) stock=unlimited;
document.getElementById("warehouseStock").innerHTML=stock;
if (stock>0) document.getElementById("warehouseStockPic").innerHTML="<img border=0 src='../templates/default/default/images/icons/available.gif'>";
else document.getElementById("warehouseStockPic").innerHTML="<img border=0 src='../templates/default/default/images/icons/not_available.gif'>";
}

function ReplaceStr(t, u, s)
{
/*
**  Replace a token in a string
**    t  token to be found and removed
**    u  token to be inserted
**    s  string to be processed
**  returns new String
*/

i = s.indexOf(t);

var leftLen=i;
var middleLen=t.length;
var rightLen=s.length-i-t.length;

var leftPart=s.substr(0,leftLen);
var middlePart=u;
var rightPart=s.substr(leftLen+middleLen,rightLen);

r = "";
if (i == -1) return s;
r = leftPart + middlePart + rightPart;
return r;
}

function GetWindowSizeX()
{
if (window.innerWidth) return window.innerWidth;
else if (document.body && document.body.offsetWidth) return document.body.offsetWidth;
else if (document.body && document.body.clientWidth) return document.body.clientWidth;
else return screen.availWidth;
}

function GetWindowSizeY()
{
if (window.innerHeight) return window.innerHeight;
else if (document.body && document.body.offsetHeight) return document.body.offsetHeight;
else if (document.body && document.body.clientHeight) return document.body.clientHeight;
else return screen.availHeight;
}

function GetBodySizeX()
{
return document.body.clientWidth;
}

function GetBodySizeY()
{
return document.body.clientHeight;
}

function Dec2Hex(v)
{
v = v.toString(16);
return v;
//  for(; v.length < 6; v = '0' + v);
//  for(; v.length < 1; v = '0' + v);
//  return v;
}

function chr(v)
{
return unescape("%"+Dec2Hex(v));
}


function scrollDown(height)
{
var maxSteps = 4;
var curStep = 0;

curStep = curStep + 1;
if(curStep > maxSteps) curStep = 0;
step = height * curStep;
dest = height * curStep;
start = height * (curStep - 1)
for(step = start + 25; step <= dest; step++)
{
parent.scroll(0, step);
}
}

function scrollUp(height)
{
var maxSteps = 4;
var curStep = 0;

curStep = curStep -1;
if(curStep < 0) curStep = maxSteps;
step = height * curStep;
dest = height * curStep;
start = height * (curStep + 1)
for(step = start; step >= dest; step--)
{
parent.scroll(0, step);
}
}

function GetURLVar(varName)
{
var retu="";
if (window.location.search != "")
{
var tmpStr=window.location.search.substr(1,window.location.search.length-1);
var tmpArray=tmpStr.split("&");
var tmpArray2;
var i;

for (i=0;i<tmpArray.length;i++)
{
tmpArray2=tmpArray[i].split("=");
if (tmpArray2[0]==varName)
{
retu=tmpArray2[1];
break;
}
}
}
return retu;
}

function GetZeroFilledNumStr(number,length)
{
number=number+"";

var isNegative=false;
if (number.charAt(0)=="-")
{
isNegative=true;
number=number.substring(1,number.length);
length--;
if (length<=0) alert("ERROR: GetZeroFilledNumStr: length<=0");
}

var charsToFill=length-number.length;

var retu="";
if (isNegative==true) retu+="-";
for (var i=0;i<charsToFill;i++)
{
retu+="0";
}
retu+=number;
return retu;
}

function GetZeroTrimmedNum(number)
{
number=number+"";

var isNegative=false;
if (number.charAt(0)=="-")
{
isNegative=true;
number=number.substring(1,number.length);
}


retu="";
if (isNegative==true) retu+="-";
retu+=TrimStrLeft(number,0);

return retu;
}

function TrimStr(str,character)
{
return TrimStrRight(TrimStrLeft(str,character),character);
}

function TrimStrLeft(str,character)
{
if (typeof(character)=="undefined") character=" ";

var i;
for (i=0;i<str.length;i++)
{
if (str.charAt(i)!=character)
{
break;
}
}

if (i>0) return str.substring(i,str.length);
else return str;
}

function TrimStrRight(str,character)
{
if (typeof(character)=="undefined") character=" ";

var i;
for (i=str.length-1;i>=0;i--)
{
if (str.charAt(i)!=character)
{
break;
}
}

if (i<str.length-1)
{
return str.substring(0,i+1);
}
else return str;
}
