/*********************
 * CONFIGURATION
 * webservice urls, slider
 *********************/	

// PARAMS
// slider
var J = jQuery.noConflict();
var sliderConfig = new Array();
var betrag = '0'; //Betrag
var currencyFromName = "";
var currencyToName = "";
var eingabekurs = 0;
var ausgabekurs = 0;
var kurs_div = 0;
var kurs_mul = 0;
var wlh = window.location.href;
var zibRegExp = /^http:\/\/(.*?)\/.*?/;
zibRegExp.exec(wlh);
var popupUrl = "umrechnungstabelle_druck.jsp?ziblink=/m101/volksbank/zib&eingabekuerzel="+currencyFromName.toUpperCase()+"&ausgabekuerzel="+currencyToName.toUpperCase()+"&kurs_eingabe=1.0&kurs_ausgabe="+toFloat(String(format(kurs_mul,4)));
var popupOptions = "toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=no,menubar=no,width=348,height=230";
var errorMsg = "Es trat ein Fehler bei der Verarbeitung auf, bitte versuchen Sie es zu einem späteren Zeitpunkt erneut.";
var faktor = 1;

var tmpCol = 'notNull';

// INITIALIZE SLIDERS - needs to be called before calc.init()
function sliderInit(dcr_monmiete_min, dcr_monmiete_max, dcr_monmiete_startwert, dcr_zeitraum_min, dcr_zeitraum_max, dcr_zeitraum_startwert) {
    sliderConfig["miete"] = {
  	min: parseInt(dcr_monmiete_min),
  	max: parseInt(dcr_monmiete_max),
  	step: 50,
  	value: parseInt(dcr_monmiete_startwert),
  	format: "money"
  };
}

function addListenersForDropDown() {
  // onclick 'Basiswaehrung - Einheit'
  J("#currencyFromDIV .jqTransformSelectWrapper ul li a").click(function(){ //Fix for "onchange"-Event
    // tmp_text = 3-letter-shortcut of the currency
    var tmp_text = J("#calcPageCalculate #calcParam-currencyFrom #currencyFromDIV .jqTransformSelectWrapper span").html().substring(0, 3);

    if(tmp_text!='Ein'){
      J("#calcParam-betrag .calcUnit").text(''+tmp_text); // write the shortcut of the currency beside the input of 'Betrag'
      J("#currencyFromName").val(tmp_text); // set the dropdown box 'Bezeichnung'
    }else{
      J("#calcParam-betrag .calcUnit").text('');
      J("#currencyFromName option:eq(0)").attr("selected", "selected");
    }
    J("#currencyFromNameDIV .jqTransformSelectWrapper div span").html(J("#currencyFromName option:selected").text()); // display the currency in the dropdown box
    
    calc.needsRefresh();
  });

  // onclick 'Basiswaehrung - Bezeichnung'
  J("#currencyFromNameDIV .jqTransformSelectWrapper ul li a").click(function(){ //Fix for "onchange"-Event
    // tmp_text = 3-letter-shortcut of the currency
    var tmp_text = J("#currencyFromName option:selected").val().substring(0, 3);
    J("#currencyFrom").val(tmp_text).attr("selected", "selected"); // set the dropdown box 'Einheit'

    if(tmp_text!='0'){
      J("#currencyFromDIV .jqTransformSelectWrapper div span").html(tmp_text); // display the currency in the dropdown box
      J("#calcParam-betrag .calcUnit").text(''+J("#calcPageCalculate #calcParam-currencyFrom #currencyFromDIV .jqTransformSelectWrapper span").text().substring(0, 3));
    }else{
      J("#currencyFrom option:eq(0)").attr("selected", "selected"); // display the default text in the dropdown box
      J("#currencyFromDIV .jqTransformSelectWrapper div span").html(J("#currencyFrom option:selected").text()); // display the default text in the dropdown box
      J("#calcParam-betrag .calcUnit").text('');
    }
    
    calc.needsRefresh();
  });

  // onclick 'Zielwaehrung - Einheit'
  J("#currencyToDIV .jqTransformSelectWrapper ul li a").click(function(){ //Fix for "onchange"-Event
    // tmp_text = 3-letter-shortcut of the currency
    var tmp_text = J("#calcPageCalculate #calcParam-currencyTo #currencyToDIV .jqTransformSelectWrapper span").html().substring(0, 3);

    if(tmp_text!='Ein'){
      J("#currencyToName").val(tmp_text); // set the dropdown box 'Bezeichnung' to the choosen value
    }else{
      J("#currencyToName option:eq(0)").attr("selected", "selected"); // set the dropdown box 'Bezeichnung' to 'Bezeichnung'
    }
    J("#currencyToNameDIV .jqTransformSelectWrapper div span").html(J("#currencyToName option:selected").text()); // display the currency in the dropdown box
    
    calc.needsRefresh();
  });

  // onclick 'Zielwaehrung - Bezeichnung'
  J("#currencyToNameDIV .jqTransformSelectWrapper ul li a").click(function(){ //Fix for "onchange"-Event
    // tmp_text = 3-letter-shortcut of the currency
    var tmp_text = J("#currencyToName option:selected").val().substring(0, 3);
    J("#currencyTo").val(tmp_text).attr("selected", "selected"); // set the dropdown box 'Einheit'

    if(tmp_text!='0'){
      J("#currencyToDIV .jqTransformSelectWrapper div span").html(tmp_text); // display the currency in the dropdown box
    }else{
      J("#currencyTo option:eq(0)").attr("selected", "selected"); // display the default text in the dropdown box
      J("#currencyToDIV .jqTransformSelectWrapper div span").html(J("#currencyTo option:selected").text()); // display the default text in the dropdown box
    }
    
    calc.needsRefresh();
  });

  // set the value of 'Betrag' initially to '0,--'
  J("#calcInput-betrag").val("0,--");
  calc.needsRefresh();
}

/*********************
 * FUNCTIONS
 * calculator specific for param checking and displaying of result
 *********************/
// PARAM CHECKING BEFORE SENDING TO WEBSERVICE
	 
function checkParams(params, p) {
	var error = false;		
	var errorClass = "calcSliderError";

	if (params["betrag"] == '' || params["betrag"] == '0') {
		calc.printError("Der <strong>Betrag</strong> darf nicht 0 sein!")
		error = true;
	}else{
    if (Number(params["betrag"]) < 0) {
		calc.printError("Der <strong>Betrag</strong> muss gr&ouml;&szlig;er 0 sein!")
		error = true;
    }
  }
	if (params["currencyFrom"] == '' || params["currencyFrom"] == '0') {
		calc.printError("Bitte w&auml;hlen Sie eine <strong>Basisw&auml;hrung</strong> aus!")
		error = true;
	}
	if (params["currencyTo"] == '' || params["currencyTo"] == '0') {
		calc.printError("Bitte w&auml;hlen Sie eine <strong>Zielw&auml;hrung</strong> aus!")
		error = true;
	}
	return error;
}


// DISPLAYING RESULTS AND CHART AFTER CALCULATING RESULT
function onParamsSent(params, response, p) {
	var result = new Array();
	// first row
	result[0] = {
		th: "Umrechnung:",
		td: calc.numberFormat(response.dummybetrag, "money", true)
	}
	
	calc.writeResultTable(result);	
}

function onParamsChanged (params){
  var result = new Array();
  betrag = params["betrag"];
  currencyFromName = J("#currencyFrom option:selected").text().substring(0, 3);
  currencyToName = J("#currencyTo option:selected").text().substring(0, 3);
  
  eingabekurs = J("#currencyFrom").val();
  ausgabekurs = J("#currencyTo").val();
  kurs_div = toFloat(ausgabekurs)/toFloat(eingabekurs);
  kurs_mul = kurs_div;
  
  
  var faktor_div = 1;
  var faktor_mul = 1;

  for(faktor_div = 1; faktor_div > kurs_div*10; faktor_div/=10){} // to avoid results like 0.000004 -> make them to 0.4
  faktor_div = 1/faktor_div;
  for(faktor_mul = 1; faktor_mul < kurs_mul/10; faktor_mul*=10){} // to avoid results like 0.000004 -> make them to 0.4


  J("#calcResult_th").text("Kurs: "+(faktor_div*1)+" "+currencyFromName+" = "+format(1*faktor_div*kurs_div,2)+" "+currencyToName/*+" Kursdatum: "+"01.01.1999"*/);
  J("#calcResult_td").text(format(betrag,2)+" "+currencyFromName+" = "+format(betrag*kurs_div,2)+" "+currencyToName);
  
  showCardTable();  
}

function sendMail(params){
  // dummy function, not necessary for "Fremdwaehrungsrechner"
}


function setCol(col) {
//  tmpCol = col;
}

function showCardTable() {
  if (tmpCol != null) {
    var faktor_div = 1;
    var faktor_mul = 1;

    if (isNaN(betrag)||betrag==0) {
      alert(errorMsg);
    }
    var cardTableHeader = new Array(currencyFromName, currencyToName, currencyToName, currencyFromName);
    for (var i = 0; i < 4; i++){
      J("#th"+i).text(cardTableHeader[i]);
    }

    for(faktor_div = 1; faktor_div > kurs_div*10; faktor_div/=10){} // to avoid results like 0.000004 -> make them to 0.4
    faktor_div = 1/faktor_div;
    for(faktor_mul = 1; faktor_mul < kurs_mul/10; faktor_mul*=10){} // to avoid results like 0.000004 -> make them to 0.4

    var cardTable = new Array(6);
    //cardTable should be a 2dimensional array (6x4) like the card
    cardTable[0] = new Array(1*faktor_div, format(1*faktor_div*kurs_div,4), 1*faktor_mul, format(1/kurs_mul*faktor_mul,4));
    cardTable[1] = new Array(2*faktor_div, format(2*faktor_div*kurs_div,4), 2*faktor_mul, format(2/kurs_mul*faktor_mul,4));
    cardTable[2] = new Array(5*faktor_div, format(5*faktor_div*kurs_div,4), 5*faktor_mul, format(5/kurs_mul*faktor_mul,4));
    cardTable[3] = new Array(10*faktor_div, format(10*faktor_div*kurs_div,4), 10*faktor_mul, format(10/kurs_mul*faktor_mul,4));
    cardTable[4] = new Array(50*faktor_div, format(50*faktor_div*kurs_div,4), 50*faktor_mul, format(50/kurs_mul*faktor_mul,4));
    cardTable[5] = new Array(100*faktor_div, format(100*faktor_div*kurs_div,4), 100*faktor_mul, format(100/kurs_mul*faktor_mul,4)); 

    for(var i = 0; i < 6; i++){
      for(var j = 0; j < 4; j++){
        J("#td"+i+j).text(cardTable[i][j]);
      }
    }
    var prefixfueruebergabe = document.getElementById("prefixfueruebergabe").value;
    popupUrl = "umrechnungstabelle_druck.jsp?ziblink=/m101/volksbank/zib&eingabekuerzel="+currencyFromName.toUpperCase()+"&ausgabekuerzel="+currencyToName.toUpperCase()+"&kurs_eingabe="+toFloat(format(1*faktor_div*kurs_div,4))+"&kurs_ausgabe="+toFloat(format(1/kurs_mul*faktor_mul,4))+"&faktor_div="+faktor_div+"&faktor_mul="+faktor_mul+"&prefixfueruebergabe="+prefixfueruebergabe;

    var tmpprintsrc = "";
    if( document.getElementById('drucklinkextseite').href.indexOf("?eingabekuerzel") != -1){
      tmpprintsrc = document.getElementById('drucklinkextseite').href.split("?eingabekuerzel")[0];
    }else{
      tmpprintsrc = document.getElementById('drucklinkextseite').href;
    }
    
    tmpprintsrc += "?eingabekuerzel="+currencyFromName.toUpperCase()+"&ausgabekuerzel="+currencyToName.toUpperCase()+"&kurs_eingabe="+toFloat(format(1*faktor_div*kurs_div,4))+"&kurs_ausgabe="+toFloat(format(1/kurs_mul*faktor_mul,4))+"&faktor_div="+faktor_div+"&faktor_mul="+faktor_mul+"&prefixfueruebergabe="+prefixfueruebergabe+"&ausgabe_eingabe="+format(betrag,2)+"_"+currencyFromName+"_=_"+format(betrag*kurs_div,2)+"_"+currencyToName+"&printbanner="+document.getElementById("header2").style.backgroundImage;
    
    if(tmpprintsrc != document.getElementById('drucklinkextseite').href){
      document.getElementById('drucklinkextseite').href = tmpprintsrc;
    }    
    
    
  }else{
    alert(errorMsg);
  }
}

function toFloat(str) {
  var iNew, iOld;
  var strFloat = "";

  if ( str == null )
  return 0;
  if ( str.length == 0 )
  return 0;

  for( iNew = iOld = 0; (iNew=str.indexOf('.',iOld)) != -1; iOld = ++iNew )
  strFloat += str.substring( iOld, iNew );
  strFloat += str.substring( iOld, str.length );

  if ( strFloat.lastIndexOf(',') != -1 ) {
    str = strFloat;
    strFloat = "";
    for( iNew = iOld = 0; (iNew=str.indexOf(',',iOld)) != -1; iOld = ++iNew )
    strFloat += str.substring( iOld, iNew );

    strFloat += '.';
    strFloat += str.substring( iOld, str.length );
  }
  return parseFloat( strFloat );
}

function format( ft, nMaxKomma ) {
  var nFactor,i,zwnullen="";

  for (i=1,nFactor=1;i<=nMaxKomma;i++) {
    nFactor=nFactor*10;
    if (ft*nFactor<1&&zwnullen.length<nMaxKomma-1)zwnullen=zwnullen+"0"
  }

  if ( ft == 0 )
    return "0,00";
  else {
    var ftBig = Math.round( ft * nFactor );
    if ( ftBig < nFactor ) {
      return "0,"+zwnullen+ftBig;
    }
    else {
      var iUp, iLow;
      var strNumber, strResult;
      strResult = "";
      strNumber = "" + Math.round( ft * nFactor );
      nLen = strNumber.length;
      for ( iLow = 0, iUp = (nLen-nMaxKomma-1)%3+1; iUp <= nLen-nMaxKomma; iUp += 3, iLow = iUp - 3 ) {
        if ( strResult.length > 0 )
        strResult += '.';
        strResult += strNumber.substring(iLow,iUp);
      }
      strResult += "," + strNumber.substring(nLen-nMaxKomma,nLen);
      return strResult;
    }
  }
}

/*********************
 * DOCUMENT READY
 *********************/
J(function(){		
	// init
	calc.init();
	addListenersForDropDown();	
	J("#ladescreen").hide();
});

