﻿// 'normalny' input color border
if( !cfBorderColor )
  var cfBorderColor   = '#000000';
if( !cfBackgroundColor )
  var cfBackgroundColor   = '#ffffff';
if( !cfWarningColor )
  var cfWarningColor  = '#ff0000';
if( !cfWarningBgColor )
  var cfWarningBgColor  = '#ffcccc';

// pomocne premenne
var sAllWarnings = '';
var oFirstWrong;
var bIsWarnings = false;
var bAllGood 		= true;

// regularne vyrazy
var	reS = /\s/gi;
var reEmail = /^[a-z0-9_.-]+([_\\.-][a-z0-9]+)*@([a-z0-9_\.-]+([\.][a-z]{2,4}))+$/i;
var	reFloat = /^-?[0-9]{1,}[.]{1}[0-9]{1,}$/i;
var	reInt = /^-?[0-9]{1,}$/i;
var	reDot = /\,/gi;

function fieldOperations( oObj, bCheck, sInfo ){
	if( bCheck === true ) {
    if( oObj.type != 'hidden' )
      oObj.style.borderColor = cfBorderColor;
      oObj.style.backgroundColor = cfBackgroundColor;
	}
	else {
    if( sInfo )
  		sAllWarnings += sInfo +'\n';
		if( oObj.type != 'hidden' ){
  		oObj.style.borderColor = cfWarningColor;
  		oObj.style.backgroundColor = cfWarningBgColor;
      if( bIsWarnings == false )
        oFirstWrong = oObj;
		}
		bIsWarnings = true;
		return false;
	}
return true;
} // end function fieldOperations

function checkText( oObj, sInfo ) {
	checkT = oObj.value.replace( reS, "" );
  var bCheck = true;
	if( checkT == '' )
    bCheck = false;
  return fieldOperations( oObj, bCheck, sInfo );
} // end function checkText

function checkEmail( oObj ) {
	var sEmail = oObj.value;
  var bCheck = true;
	if ( sEmail.search( reEmail ) == -1 )
    bCheck = false;
  return fieldOperations( oObj, bCheck, cfLangMail );
} // end function checkEmail

function checkFloat( oObj, sInfo ) {
  var bCheck = true;
	if( oObj.value.search( reFloat ) == -1 && oObj.value.search( reInt ) == -1 ){
    if( !sInfo )
      var sInfo = cfWrongValue;
    bCheck = false;
  }
  return fieldOperations( oObj, bCheck, sInfo );
} // end function checkFloat

function checkInt( oObj, sInfo ) {
  var bCheck = true;
	if( oObj.value.search( reInt ) == -1 ) {
    if( !sInfo )
      var sInfo = cfWrongValue;
    bCheck = false;
  }
  return fieldOperations( oObj, bCheck, sInfo );
} // end function checkInt

function checkFloatValue( oObj, iMinFloat, sInfo ) {
  var bCheck = true;
	if( +oObj.value <= +iMinFloat ) {
    if( !sInfo )
      var sInfo = cfToSmallValue;
    bCheck = false;
  }
  return fieldOperations( oObj, bCheck, sInfo );
} // end function checkFloatValue

function checkIntValue( oObj, minInt, sign, sInfo ) {
  if( !minInt )
    var minInt = 0;
  if( !sign )
    var sign = '==';
  if( !sInfo )
    var sInfo = cfWrongValue;
	eval ( 'var bCheck = ( '+ +oObj.value +' '+ sign +' '+ +minInt +' );' );
  return fieldOperations( oObj, bCheck, sInfo );
} // end function checkIntValue

function checkTxt( oObj, iMin, sInfo ) {
	if( !iMin )
		var iMin = 6;
	var check = oObj.value.replace( reS, "" );
  var bCheck = true;
	if( check.length < iMin ){
    bCheck = false;
    if( !sInfo )
      var sInfo = cfTxtToShort;
  }
  return fieldOperations( oObj, bCheck, sInfo );
} // end function checkTxt

function cfDot( oObj ){
	return oObj.value.replace(reDot, "\.");
}  // end function cfDot

function cfFix( 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 );
	if( w.search( reFloat ) == -1 )
		w = '0.00';
	return w;
} // end function cfFix

function checkForm( form, aA ) {
  sAllWarnings 	= '';
  bIsWarnings 	= false;
  bAllGood			= true;
  oFirstWrong 	= '';
  var oO; 
  var sT; // typ
  for( i in aA ) {
    if( typeof(aA[i][0])=="object" && aA[i][0].constructor == Array ){
      oO = [form[aA[i][0][0]], form[aA[i][0][1]]];
    }
    else
      oO = form[aA[i][0]];
    if( aA[i][1] )
      sT = aA[i][1];
    else
      sT = false;
		if( !sT || sT == 'simple' ) {
			bAllGood = checkText( oO, aA[i][2] );
		}
		else if( ( sT == 'email' ) && ( ( aA[i][2] === true && oO.value ) || !aA[i][2] ) ) {
			bAllGood = checkEmail( oO );
		}
		else if( ( sT == 'float' ) && ( ( aA[i][3] === true && oO.value ) || !aA[i][3] ) ) {
			oO.value = cfDot( oO );
			bAllGood = checkFloat( oO );
			if( bAllGood ){
				oO.value = cfFix( oO.value );
				if(	aA[i][2] != '' )
					bAllGood = checkFloatValue( oO, aA[i][2] );
			}
		}
		else if( ( sT == 'txt' ) && ( ( aA[i][4] === true && oO.value ) || !aA[i][4] ) ) {
			bAllGood = checkTxt( oO, aA[i][2], aA[i][3] );
		}
		else if( ( sT == 'int' ) && ( ( aA[i][5] === true && oO.value ) || !aA[i][5] ) ) {
			bAllGood = checkInt( oO, aA[i][3] );
			if( aA[i][2] && bAllGood ) {
				if( aA[i][4] ) {
					bAllGood = checkIntValue( oO, aA[i][2], aA[i][4], aA[i][3] );
				}
				else
					bAllGood = checkFloatValue( oO, aA[i][2], aA[i][3] );
			}
		}
	} // end for
  if( bIsWarnings == true ) {
		sAllWarnings = cfLangNoWord + '\n' + sAllWarnings;
    alert ( sAllWarnings );
    if( oFirstWrong )
      oFirstWrong.focus();
    return false;
	}
return true;
} // end function checkForm

/* Counts order summary after selecting courier */
function ordersCouriers( obj ){
  if( obj.value != '' ) {
    aCourier = obj.value.split( "|" );
    fDeliveryCost = Math.abs( aCourier[1] );
    gEBI( "deliveryCost" ).innerHTML  = changePriceFormat( fDeliveryCost );
    gEBI( "summaryCost" ).innerHTML   = changePriceFormat( +fOrderCost + fDeliveryCost ) + '<br /><font size="-2">(' + changePriceFormat( (+fOrderCost + fDeliveryCost) * 30.126 ) + ' Sk)</font>';
  } else {
    aCourier = Array( 0, '0.00' );
    fDeliveryCost = Math.abs( aCourier[1] );
    gEBI( "deliveryCost" ).innerHTML  = changePriceFormat( fDeliveryCost );
    gEBI( "summaryCost" ).innerHTML   = changePriceFormat( +fOrderCost + fDeliveryCost ) + '<br /><font size="-2">(' + changePriceFormat( (+fOrderCost + fDeliveryCost) * 30.126 ) + ' Sk)</font>';
  }
} // end function ordersCouriers

var aUserDataNames = new Array( 'sFirstName', 'sLastName', 'sCompanyName', 'sStreet', 'sZipCode', 'sCity', 'sTelephone', 'sEmail' );

function saveUserData( sName, sValue ){
  createCookie( sName, sValue, 2 );
}

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 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 gEBI( objId ){
  return document.getElementById( objId );
}
  
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

  var cfBorderColor     = '#6699cc';
  var cfBackgroundColor = '#ffffff';
  var cfLangNoWord      = 'Prosím, vyplňte všetky povinné polia';
  var cfLangMail        = 'Vyplňte e-mail';
  var cfWrongValue      = 'Vyplňte správny údaj';
  var cfToSmallValue    = 'Menšia čiastka';
  var cfTxtToShort      = 'Príliš krátky text';

if( !aCheckFormDelivery ){
  var aCheckFormDelivery =  Array(
    Array( 'sFirstName' )
    ,Array( 'sLastName' )
    ,Array( 'sStreet' )
    ,Array( 'sZipCode' )
    ,Array( 'sCity' )     
    ,Array( 'sTelephone' )
    ,Array( 'sEmail', 'email' )
    ,Array( 'iCourier', 'simple', 'Vyberte spôsob doručenia' )
  );
}

function windowGallery(iPhoto){
 var refFoto = window.open("/fotka/"+ iPhoto, 'Gallery', "heigth=550,width=710,top=20,left=20,resizable=yes,scrollbars=yes,status=0;");
}

