/*
* Common JS scripts
*/

function gEBI( objId ){
  return document.getElementById( objId );
}

function createCookie( sName, sValue, iDays ){
	//sValue = escape(sValue);
  if( iDays ){
    var oDate = new Date();
    oDate.setTime( oDate.getTime() + ( iDays*24*60*60*1000 ) );
    var sExpires = "; expires="+oDate.toGMTString();
  }
  else
    var sExpires = "";
  document.cookie = sName+"="+sValue+sExpires+"; path=/";
}

function throwCookie( sName ){
  var sNameEQ = sName + "=";
  var aCookies = document.cookie.split( ';' );
  for( var i=0; i < aCookies.length; i++ ){
    var c = aCookies[i];
    while( c.charAt(0) == ' ' )
      c = c.substring( 1, c.length );
    if( c.indexOf( sNameEQ ) == 0 )
      return c.substring( sNameEQ.length, c.length );
  }
  return null;
}

function delCookie( sName ){
  createCookie( sName, "", -1 );
}

function isset( sVar ){
  return( typeof( window[sVar] ) != 'undefined' );
}

function targetBlank( ){
  var oLinks = document.getElementsByTagName( 'a' );
  for( var i=0; i < oLinks.length; i++ ) {
    if( oLinks[i].className == 'new-window' || oLinks[i].className == 'new-windowMark' ) {
      oLinks[i].onclick = function( ){
        window.open( this.href );
        return false;
      };
    }
  }
} // end function

_bUa=navigator.userAgent.toLowerCase();
_bOp=(_bUa.indexOf("opera")!=-1?true:false);
_bIe=(_bUa.indexOf("msie")!=-1&&!_bOp?true:false);
_bIe4=(_bIe&&(_bUa.indexOf("msie 2.")!=-1||_bUa.indexOf("msie 3.")!=-1||_bUa.indexOf("msie 4.")!=-1)&&!_bOp?true:false)
isIe=function(){return _bIe;}
isOldIe=function(){return _bIe4;}
var olArray=[];

function AddOnload( f ){
  if( isIe && isOldIe ){
    window.onload = ReadOnload;
    olArray[olArray.length] = f;
  }
  else if( window.onload ){
    if( window.onload != ReadOnload ){
      olArray[0] = window.onload;
      window.onload = ReadOnload;
    }
    olArray[olArray.length] = f;
  }
  else
    window.onload=f;
}
function ReadOnload(){
  for( var i=0; i < olArray.length; i++ ){
    olArray[i]();
  }
}


/*
* Orders
*/

function fix( f ){
	f	= f.toString( );
	var re	= /\,/gi;
	f	= f.replace( re, "\." );

	f = Math.round( f * 100 );
	f = f.toString( );
	var sMinus = f.slice( 0, 1 );
	if( sMinus == '-' ){
	 f = f.slice( 1, f.length )
	}
	else
	 sMinus = '';
	if( f.length < 3 ) {
		while( f.length < 3 )
			f = '0' + f;
	}

	var w = sMinus + f.slice( 0, f.length-2 ) + "." + f.slice( f.length-2, f.length );

  var poprawnyFloat = /^-?[0-9]{1,}[.]{1}[0-9]{1,}$/i;
	if( w.search( poprawnyFloat ) == -1 )
		w = '0.00';
	return w;

}

function changePriceFormat( fPrice ){
  // config start
  var sDecimalSeparator = '.';
  var sThousandSeparator = '';
  // config end

  fPrice = fix( fPrice );
  var aPrice = fPrice.split( '.' );
  var iPriceFull = aPrice[0];
  var aPriceFull = new Array( );

  var j = 0;
  for( var i = iPriceFull.length - 1; i >= 0; i-- ){
    if( j > 0 && j%3 == 0 )
      aPriceFull[j] = iPriceFull.substr( i, 1 )+''+sThousandSeparator;
    else
      aPriceFull[j] = iPriceFull.substr( i, 1 );
    j++;
  } // end for

  aPriceFull.reverse( );
  sPriceFull = aPriceFull.join( '' );
  sPrice = sPriceFull+''+sDecimalSeparator+''+aPrice[1];
  return sPrice;
} // end function changePriceFormat

function generatePrice( fPrice1, fPrice2 ){
  fPrice1 = fix( fPrice1 );
  fPrice2 = fPrice2.toString();
  if( fPrice2.match( /\%/ ) ){
    fPrice2 = fix( fPrice2.replace( /\%/, '' ) );
    if( fPrice2 < 0 ){
      return changePriceFormat( fPrice1 - ( fPrice1 * ( -fPrice2 / 100 ) ) );
    }
    else
      return changePriceFormat( +fPrice1 + ( fPrice1 * ( fPrice2 / 100 ) ) );
  }
  else{
    fPrice2 = fix( fPrice2 ) * 1;
    return changePriceFormat( +fPrice1 + fPrice2 );
  }
} // end function generatePrice


function countCarrierPrice( oObj ){

  if( oObj.value != '' )
    aCourier = oObj.value.split( ";" );
  else
    aCourier = Array( 0, 0, '0.00' );

  fDeliveryCost = Math.abs( aCourier[2] );

  gEBI( 'carrierCost' ).innerHTML = changePriceFormat( fDeliveryCost );

  if(document.getElementById("KoncovaCena").innerHTML != "") {
  	cena = document.getElementById("KoncovaCena").innerHTML;
	} else {
		cena = document.getElementById("cenaProduktu").innerHTML;;
	}

  gEBI( 'orderSummary' ).innerHTML = changePriceFormat( +cena + fDeliveryCost )

} // end function


var aUserDataNames = new Array( 'sFirstName', 'sLastName', 'sCompanyName', 'sStreet', 'sZipCode', 'sCity', 'sPhone', 'sEmail', 'sNip' );

function saveUserData( sName, sValue ){
  createCookie( sName, sValue, 2 );
}

function checkSavedUserData( ){
  var iCount = aUserDataNames.length;
  var sCookie = null;
  var oForm = gEBI( "order" );
  for( var i = 0; i < iCount; i++ ){
    sCookie = throwCookie( aUserDataNames[i] );
    if( sCookie && sCookie != '' ){
      if( gEBI( aUserDataNames[i] ) )
        gEBI( aUserDataNames[i] ).value = unescape( sCookie );
      else if( oForm[aUserDataNames[i]] )
        oForm[aUserDataNames[i]].value = unescape( sCookie );
    }
  } // end for
} // end function checkSavedUserData

function delSavedUserData( ){
  var iCount = aUserDataNames.length;
  var sCookie = null;
  for( var i = 0; i < iCount; i++ ){
    delCookie( aUserDataNames[i] );
  } // end for
} // end function delSavedUserData

function Zesedivet() {
	if(document.getElementById("oFirstName").disabled==true) {
		document.getElementById("oOsloveni").disabled=false;
		document.getElementById("oFirstName").disabled=false;
		document.getElementById("oLastName").disabled=false;
		document.getElementById("oStreet").disabled=false;
		document.getElementById("oZipCode").disabled=false;
		document.getElementById("oCity").disabled=false;
		document.getElementById("oPhone").disabled=false;
		document.getElementById("oEmail").disabled=false;
		document.getElementById("oComment").disabled=false;
	}else{
		document.getElementById("oOsloveni").disabled=true;
		document.getElementById("oFirstName").disabled=true;
		document.getElementById("oLastName").disabled=true;
		document.getElementById("oStreet").disabled=true;
		document.getElementById("oZipCode").disabled=true;
		document.getElementById("oCity").disabled=true;
		document.getElementById("oPhone").disabled=true;
		document.getElementById("oEmail").disabled=true;
		document.getElementById("oComment").disabled=true;
	}
}

function Cookie(nazev){
	var cookieList=document.cookie.split("; ");
	var cookieArray = new Array();
	for (var i=0; i < cookieList.length; i++){
		var name = cookieList[i].split("=");
		if(unescape(name[0]) == nazev) {
			return unescape(name[1]);
		}
	}
}

function Pole(retezec) {
	ret = retezec.split("/");
	retur = new Array();

	for(var i=0; i < ret.length; i++) {
		obsah = ret[i].split(",");
		retur[i] = new Array();
		for(var x=0; x < obsah.length; x++) {
			retur[i][x] = obsah[x];
		}
	}
	return retur;
}

function Sleva(typ) {
	/*
	 * typ = bud normal (zakaznik nema rabat),
	 * 			 nebo ciselna hodnata (zakaznik je rabat, hodnota udava jakou ma slevu)
	 *
	 */

	// nadefinovani ceny produktu
	var cenaProduktu = parseInt(gEBI("cenaProduktu").innerHTML.substr(0, gEBI("cenaProduktu").innerHTML.length-3));

	// zavolani funkce pro ziskani cookie
	if(typ=="normal") {
		// pokud zakaznik nema rabat
		slevy = Cookie("slevy");
	} else {
		// pokud zakaznik ma rabat
		slevy = Cookie("slevyrabat");
		// nadefinovani slevy
		sleva = typ;
	}

	// rozdeleni ziskaneho cookie na jednotlive casti oddelene / (lomitkem)
	ret = slevy.split("/");
	// cyklus pro prochazeni jednotlivych casti
	for(var i=0; i < ret.length; i++) {
		// rozdeleni casti na jeste mensi casticky oddelene , (carkou)
		obsah = ret[i].split(",");

		// nadefinovani promennych ze ziskanych casticek
		// nadefinovani od jake hodnoty se sleva uplatnuje
		odc = obsah[0];
		// nadefinovani do jake hodnoty se sleva uplatnuje
		doc = obsah[1];
		// nadefinovani postovneho
		postovne = obsah[2];
		// nadefinovani slevy
		if(typ=="normal") {	sleva = obsah[3]; }

		// podminka pro zjisteni, zda je cenove rozmezi slevy shodne s cenou produktu zakaznika
		// pokud je maximalni cena (doc) nulova, plati, ze je to do nekonecna
		if(cenaProduktu >= odc && (cenaProduktu <= doc || doc==0)) {
			// zavolani funkce pro dosazeni ziskanych slev a postovneho do stranky
			Dosad(sleva, postovne, cenaProduktu);
		}
	}
}


function Dosad(slevaP, postovne, cenaProduktu) {
	/*
	 *	1. slevaP = procentualni sleva
	 *  2. postovne = hodnota postovneho
	 * 	3. cenaProduktu = cena vsech produktu bez slevy a postovneho
	 *
	 */

	// vypocet slevy
	sleva = cenaProduktu * slevaP / 100;

	// vypocet celkove ceny (produkty - sleva)
	celkem = cenaProduktu - sleva;

	// kolik je sleva - umisteni do stranky
	gEBI("VypocetSlevy").innerHTML = " -"+changePriceFormat(sleva);
	// takoveto (sleva x%)
	var vysvetleni = "";
	if(sleva != 0){ vysvetleni = '(sleva '+slevaP+"%) ";}
	// umisteni (sleva x%) do stranky
	document.getElementById("Vysvetleni").innerHTML = vysvetleni;
	// kolik je sleva - umisteni do skryteho policka formulare
	gEBI( 'sSleva' ).value = vysvetleni+" "+changePriceFormat(sleva);


	// umisteni celkove ceny do stranky
	document.getElementById("KoncovaCena").innerHTML = changePriceFormat(celkem);

	// umisteni celkove ceny do skryteho policka formulare
	gEBI( 'sCenaProduktu' ).value = changePriceFormat(celkem);

	// umisteni postovneho do stranky
	gEBI( 'carrierCost' ).innerHTML = changePriceFormat(postovne);
	// umisteni postovneho do skryteho policka
	gEBI( 'sPostovne' ).value = changePriceFormat(postovne);

	// vypocet celkove ceny (cena produktu - sleva + postovne)
	vysledek = changePriceFormat(celkem + parseInt(postovne));
	// umisteni celkove ceny do stranky
	gEBI( 'orderSummary' ).innerHTML = vysledek;
}

function rozbal(co) {
	if(gEBI(co).style.display=="none") {
		gEBI(co).style.display = "block";
	} else {
		gEBI(co).style.display = "none";
	}
}

function nechatRozbalene() {
  if(gEBI("oFirmaNazev").value != "" || gEBI("oICO").value != "" || gEBI("oDIC").value != "") {
    gEBI("firma").style.display = "block";
  }
}

function Fakturacni(zde) {
	if(zde.checked==true) {
		gEBI("oFirstNameD").value=gEBI("oFirstName").value;
		gEBI("oLastNameD").value=gEBI("oLastName").value;
		gEBI("oStreetD").value=gEBI("oStreet").value;
		gEBI("oZipCodeD").value=gEBI("oZipCode").value;
		gEBI("oCityD").value=gEBI("oCity").value;
		gEBI("oPhoneD").value=gEBI("oPhone").value;
		gEBI("oEmailD").value=gEBI("oEmail").value;
	}else {
		gEBI("oFirstNameD").value="";
		gEBI("oLastNameD").value="";
		gEBI("oStreetD").value="";
		gEBI("oZipCodeD").value="";
		gEBI("oCityD").value="";
		gEBI("oPhoneD").value="";
		gEBI("oEmailD").value="";
	}
}

function Celkove() {
	gEBI("sCenaCelkove").value = parseInt(gEBI("sCenaProduktu").value) + parseInt(gEBI('carrierCost').innerHTML.substr(0, gEBI("carrierCost").innerHTML.length-3));
	//gEBI("sCenaBezSlevy").value = gEBI("cenaProduktu").innerHTML;
}

