﻿var ie;
var pos;

if (navigator.appVersion.indexOf("MSIE")!=-1) {
	ie = true;
} else {
	ie = false;
}

function changeClass(el,elclass) {
				resetbg(el);
				el.className = elclass;
}

function resetbg(el) {
	el.style.backgroundColor = '';
}

function cleanString(str1) {
	str1 = str1.replace(/&/g,"**am**");
	str1 = str1.replace(/=/g,"**eq**");
	str1 = str1.replace(/\+/g,"**pl**");
	return str1;
}

function hideDIV(d) {
	try{
		document.getElementById(d).style.display = "none";
	}catch(err){
		//do nothing for now
	}
}

function displayDIV(d) {
	try{
		document.getElementById(d).style.display = "block";
	}catch(err){
		//do nothing for now
	}
}

function ajaxFunction(){
	var ajaxRequest;  // The variable that makes Ajax possible!
	try{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	} catch (e){
		// Internet Explorer Browsers
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				// Something went wrong
				//alert("Your browser broke!");
				return false;
			}
		}
	}
	return ajaxRequest;
}

var pos; // variable for posting information

function loadXMLPosDocCB(callUrl,posData) {
    // branch for native XMLHttpRequest object
    pos = ajaxFunction();
    if (pos) {
    		pos.onreadystatechange = processCallBackSend;
        pos.open("POST", callUrl, false);
			  pos.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        pos.send(posData);
    }
}


function validatePhone() {
	var callbackForm = document.getElementById("cmbForm");
	var phoneField = callbackForm.cb_phone;
	var result=true;
	var phoneFieldValue=phoneField.value;
	if(phoneFieldValue=="")
		result=false;
	else{
		for(i=0;i<phoneFieldValue.length;i++){
			var oneChar=phoneFieldValue.charAt(i);
			if(!(oneChar==' ' || oneChar=='-' || oneChar=='+' || oneChar=='(' || oneChar==')' || (oneChar>='0' && oneChar<='9'))){
					result=false;
					break;
			}
		}
	}
	if (result) {
		sendPostCallBackPhone(phoneField);
	}else{
		displayCallbackStatus(callbackForm ,'Bitte geben Sie die Telefonnummer<br/>','errorMessage');
	}
}

function sendPostCallBackPhone (phoneField) {
	var callbackForm = document.getElementById("cmbForm");
	var page = callbackForm.action;
	var	siteName=callbackForm.siteName.value;
	showCallBackTimer(); // quickly begin the
	var str1 =phoneField.name+"="+cleanString(phoneField.value)+"&siteName="+siteName+"&form_submitted=true";
	loadXMLPosDocCB(page,str1);
}

function processCallBackSend() {
    // page loaded "complete"
    var callbackForm = document.getElementById("cmbForm");
		if (pos.readyState == 4) {
        // page is "OK"
        if (pos.status == 200) {
			if ( grabPosXML("status") == 'NOTOK' ) {
				displayCallbackStatus(callbackForm,'Fehler beim Übermitteln des Formulares. Bitte versuchen Sie es erneut.','errorMessage');
			}
		}
	}
}


function showCallBackTimer () {
	var callbackForm = document.getElementById("cmbForm");
	var msg = '<img src="../images/ajax-loader.gif" alt="Laden..." title="Senden" /> <strong>Senden ...</strong>';
	displayCallbackStatus(callbackForm,msg,'none');
	sentTimer = setTimeout("hideCallBackTimer()",1000);
}

function hideCallBackTimer () {
	var status = grabPosXML("status");
	var callbackForm = document.getElementById("cmbForm");
	if ( status == 'NOTOK' ) {
		displayCallbackStatus(callbackForm ,msg,'errorMessage');
	} else 	if ( status == 'OK' ) {
		msg = 'Sie werden innerhalb der nächsten 24 Stunden kontaktiert.<br />Ihr NOMIK Team.';
		displayCallbackStatus(callbackForm ,msg,'OK');
		removeHandlingEvent(callbackForm, 'submit', validatePhone, false);
	}
}

function displayCallbackStatus(frm,msg,status) {
  	if (document.getElementById(frm.id+'_status')) {
			var statusDiv = document.getElementById(frm.id+'_status');
			changeClass(statusDiv,status);
			Fat.fade_element(statusDiv.id, 30, 500, '#ffffff', null);
			statusDiv.innerHTML = msg;
    } else {
			var statusDiv = document.createElement("div");
			statusDiv.id = frm.id+'_status';
			statusDiv.innerHTML = msg;
			frm.insertBefore(statusDiv, frm.childNodes[0]);
			Fat.fade_element(statusDiv.id, 30, 500, '#ffffff', null);
		}
}


function addHandlingEvent(elm, evType, fn, useCapture) {
	if (ie) {
/*		var r = elm.attachEvent('on' + evType, fn);
		EventCache.add(elm, evType, fn);
		return r; */
		elm.attachEvent('on' + evType, fn, false);
	}
	else {
		elm.addEventListener(evType, fn, useCapture);
	}
}

function removeHandlingEvent(elm, evType, fn, useCapture) {
	if (ie) {
/*		var r = elm.attachEvent('on' + evType, fn);
		EventCache.add(elm, evType, fn);
		return r; */
		elm.detachEvent('on' + evType, fn);
	}
	else {
		elm.removeEventListener(evType, fn,useCapture);
	}
}

function grabPosXML(tagName) {
	if (pos.responseXML.documentElement.getElementsByTagName(tagName)[0].childNodes[0]) {
		var resp = pos.responseXML.documentElement.getElementsByTagName(tagName)[0].childNodes[0].nodeValue;
		return resp;
	} else {
		displayStatusmsg(getFormId(),'Fehler beim Übermitteln des Formulares. Bitte versuchen Sie es erneut.','errorMessage');
		return false;
	}
}


function ajaxCallMeBack(elId) {
	var callbackForm = document.getElementById(elId);
	addHandlingEvent(callbackForm, 'submit', validatePhone, false);
	callbackForm.onsubmit = function() { return false; }
}

