function getPSRequestObject() {
  var ps_request= null;
  try{
    ps_request= new XMLHttpRequest();
  }
  catch (ms){
    try{
      ps_request= new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (nonms){
      try{
        ps_request= new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (failed){
        ps_request= null;
      }
    }
  }
  if (ps_request == null){
    //alert("Error creating request object!");
  } else {
    return ps_request;
  }
}

function getPage(URL, targetID, loadingtext){

	URL = makeSSLUrl(URL);

  if (loadingtext == undefined){
    loadingtext = defloadtext;
  }
  //var httpRequestObject = getPSRequestObject ();

  //anfrage erstellen (GET, url ist localhost, request ist asynchron)
  httpRequestObject.open("GET",  URL, true);

  //Beim abschliessen des request wird diese Funktion ausgeführt
  // warum auch immer, aber der IE6 WILL das hier unbeding in einer Zeile :(
  httpRequestObject.onreadystatechange = function() {switch(httpRequestObject.readyState) {      case 1:        if ((targetID != null) && (targetID != ""))            document.getElementById(targetID).innerHTML = loadingtext;        break;      case 2:        /* status geladent*/        if ((targetID != null) && (targetID != ""))            document.getElementById(targetID).innerHTML = loadingtext;        break;      case 3:        /*status interaktic*/        if ((targetID != null) && (targetID != ""))            document.getElementById(targetID).innerHTML = loadingtext;        break;      case 4:        if(httpRequestObject.status!=200) {          alert("Fehler:"+httpRequestObject.status);        } else {          if ((targetID != null) && (targetID != ""))            document.getElementById(targetID).innerHTML = ''+ httpRequestObject.responseText +'';        	/*Button-formatierung*/		uniformButtons();        }        break;      default:        return false;      break;    }};

  httpRequestObject.setRequestHeader("Content-Type","application/x-http://www-form-urlencoded;charset=UTF-8");
  httpRequestObject.send(null);
}

function postPage(URL, ps_parameter, targetID, loadingtext) { //ps_parameter = 'name=Wilhelm&alter=52'

	URL = makeSSLUrl(URL);

  if (loadingtext == undefined){
    loadingtext = defloadtext;
  }

  httpRequestObject.open ('POST', URL, true);
  
  httpRequestObject.onreadystatechange = function(){

    switch(httpRequestObject.readyState) {
      case 1:
        if ((targetID != null) && (targetID != ""))
            document.getElementById(targetID).innerHTML = loadingtext;
        break;
      case 2:
        // status geladen
        break;
      case 3:
        // status interaktiv
        break;
      case 4:
        if(httpRequestObject.status!=200) {
          alert("Fehler:"+httpRequestObject.status);
        } else {

          if ((targetID != null) && (targetID != ""))
            document.getElementById(targetID).innerHTML = ''+ httpRequestObject.responseText +'';

        	// Button-formatierung
		uniformButtons();
}
        break;
      default:
        return false;
      break;
    }
  };

  httpRequestObject.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
  httpRequestObject.send (ps_parameter);
}

function sendForm(formName){
  var formDATA = "";
  if (document.forms[formName]){
    for (var i = 0; document.forms[formName].elements[i]; i++){
    	if (document.forms[formName].elements[i].value != undefined && (
		(document.forms[formName].elements[i].type!="radio" && document.forms[formName].elements[i].type!="checkbox") || 
		(document.forms[formName].elements[i].type=="radio" && document.forms[formName].elements[i].checked==true) || 
		(document.forms[formName].elements[i].type=="checkbox" && document.forms[formName].elements[i].checked==true))){
      	var newdata = document.forms[formName].elements[i].value;
      	newdata = newdata ? newdata.replace('&','%26') : '';
      	formDATA = formDATA + "&" + document.forms[formName].elements[i].name + "=" + newdata;
      }
    }
    //alert(formDATA);
    postPage(document.forms[formName].action, formDATA, document.forms[formName].target);
  } else {
    //alert("Formular '"+formName+"' doesn't exist.");
  }
}

function makeSSLUrl(url){
	if (window.location.protocol == "http:"){
		url = url.replace(/^https/, "http");
	}
	return url;
}

var httpRequestObject = getPSRequestObject();
var defloadtext = '<div id="loading">kleinen Moment bitte ... <br/><img src="out/basic/img/promo_credit/loading.gif"/></div>';
//window.onunload = httpRequestObject.abort ();


//Folgende Functionen müssen eingebunden werden:
function addRateCalculation(rate){
	document.forms['finanz_form'].elements['f_duration'].value = rate;
	sendForm('finanz_form');  // name der Funktion zum senden des Formulars
}


//Folgende Functionen müssen eingebunden werden:
function uniformButtons() {
	// die Eingabefelder und Buttons formatieren
	$("#fin_tool select,#fin_tool textarea,#fin_tool input:button,#fin_tool input:text,#fin_tool input:checkbox,#fin_tool input:radio,#fin_tool input:file").uniform();
	// Tooltip initialisieren
	$("#fin_tool .info").tooltip({ position: "top right", tipClass: "promo_tooltip"});	
}

