/*
* 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' );
  
  iCarrierUnchecked = null;
  if(aCourier[0] == 0 && aCourier[2] == 0) {												// if a payment was clicked
	gEBI('tableCarriers').className = "showingPayment"+aCourier[1];	// shows a column in a table based on td class specified in CSS. GENIUS!!!
	for (var i=0; i < gEBI('orderForm').sPaymentCarrier.length; i++) {
		oInput = gEBI('orderForm').sPaymentCarrier[i];
		if( oInput.value != '' ) aInputData = oInput.value.split( ";" );
		else aInputData = null;
		if (oInput.checked && aInputData[1] != aCourier[1]) {
			iCarrierUnchecked = aInputData[0];
			oInput.checked = false;																// uncheck input if a different payment was clicked
		}
    }
	for (var i=0; i < gEBI('orderForm').sPaymentCarrier.length; i++) {		// go through inputs again looking for a carrier to the payment that was clicked
		oInput = gEBI('orderForm').sPaymentCarrier[i];
		if( oInput.value != '' ) aInputData = oInput.value.split( ";" );
		else aInputData = null;
		if (iCarrierUnchecked && aInputData[1] == aCourier[1] && iCarrierUnchecked == aInputData[0]) {
			oInput.checked = true;
			aCourier[2] = aInputData[2];														// check and also add the carrier+payment price to the summary
		}
	}
  }
 
  fDeliveryCost = Math.abs( aCourier[2] );
  gEBI( 'carrierCost' ).innerHTML = changePriceFormat( fDeliveryCost );
  gEBI( 'orderSummary' ).innerHTML = changePriceFormat( +fOrderSummary + fDeliveryCost )
  
} // end function 

function changeDisplayState(sId, sState) {
	if(gEBI(sId)) gEBI(sId).style.display = sState; 
}

function hideCarriers( oObj ){
  if( gEBI('oInvoice').value != '' ) {
	iState = gEBI('oInvoice').value;

	gEBI('carrierCost').innerHTML = "0.00";																		// reset summary prices and payments carriers table radio button
	gEBI( 'orderSummary' ).innerHTML = changePriceFormat( +fOrderSummary );
	for (var i=0; i < gEBI('orderForm').sPaymentCarrier.length; i++) {
		if (gEBI('orderForm').sPaymentCarrier[i].checked) gEBI('orderForm').sPaymentCarrier[i].checked = false;
    }

	if(iState == 0) { changeDisplayState('carrier1', 'block'); changeDisplayState('carrier5', 'block'); changeDisplayState('carrier6', 'block'); }  // hack for Idiotic Explorer 	Internet Explorer couldn't cope with "table-row" display property being set at some very specific time to CSS so after that particular instruction some other elements were later not properly hidden. Unbelievable that this behavior was carried from IE6 right into IE8.
	if(iState == 1) changeDisplayState('carrier8',  'block');		// hack for Idiotic Explorer
	if(iState == 2) { changeDisplayState('carrier9', 'block'); changeDisplayState('carrier10', 'block'); }
	
	if(iState != 0) { changeDisplayState('carrier1', 'none'); changeDisplayState('carrier5', 'none'); changeDisplayState('carrier6', 'none'); }
	if(iState != 1) changeDisplayState('carrier8',  'none');
	if(iState != 2) { changeDisplayState('carrier9', 'none'); changeDisplayState('carrier10', 'none'); }

	if(iState == 0) { changeDisplayState('carrier1', 'table-row'); changeDisplayState('carrier5', 'table-row'); changeDisplayState('carrier6', 'table-row'); } // WARNING! you cannot set styles in IE after this, it gets fucked up on that instruction
	if(iState == 1) changeDisplayState('carrier8',  'table-row');		// hack for Idiotic Explorer
	if(iState == 2) { changeDisplayState('carrier9', 'table-row'); changeDisplayState('carrier10', 'none'); }

	if(iState == 555 ) { 
		var answer = confirm ("\nVi beklager, men vi kan ikke fortsætte med din ordre da vi kun sender til udvalgte lande. Kontakt os venligst for at høre hvilke muligheder du har for at få ordren tilsendt til dig land.\n\nKlik på OK for at gå til kontaktsiden, eller klik på ANNULLER for at returnere til ordre siden.\n"); 
		if (answer) window.location="http://mallen.dk/index.php?kontakt,17";
	}
  }
} // 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( "orderForm" );
  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 txtSize( iSize ){
  var aSizes = Array( '0.917em', '', '1.333em' );
  var aChange = Array( 'pageDescription', 'h5', 'productDescription' );
  var aSizesDefault = Array( '1.083em', '1em', '1.08em' );
  for( var i = 0; i < aChange.length; i++ ){
    if( !aSizes[iSize] )
      iSize = 1;
    if( gEBI( aChange[i] ) ){
      gEBI( aChange[i] ).style.fontSize = ( iSize != 1 ) ? aSizes[iSize] : aSizesDefault[i];
    }
    else if( gEBI( 'content' ).getElementsByTagName( aChange[i] ) ){
      aH5 = gEBI( 'content' ).getElementsByTagName( aChange[i] );
      for( var j = 0; j < aH5.length; j++ ){
        aH5[j].style.fontSize =  ( iSize != 1 ) ? aSizes[iSize] : aSizesDefault[i];
      }
    }
  }
}

