// JavaScript Document
YAHOO.util.Event.onDOMReady(mm_validateForms);


/**
 * START AJAX Snippet-Loader for Login-Page
 */
		// IS24 namespace
		IS24 = new Object();
		IS24.registerNS = function (ns) {
			var nsParts = ns.split(".");
			var root = window;
			for( var i=0; i<nsParts.length; i++) {
				if (typeof root[nsParts[i]] == "undefined") root[nsParts[i]] = new Object();
				root = root[nsParts[i]];
			}
		}

		// load ad snippet
		IS24.registerNS("IS24.MM.Snippet");
		IS24.MM.Snippet.URL = "login_snippet.html";
		IS24.MM.Snippet.DivId = "snippet";
		
		IS24.MM.Snippet.load = function () {

			if (location.protocol.indexOf("http") == -1) { return false; }
			var xmlHttp = false;

			try { xmlHttp = new XMLHttpRequest(); }
			catch (ms) {
				try { xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP"); }
				catch(e) {
					try { xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP"); }
					catch(e) { return false; }
				}
			}

			xmlHttp.open("GET", IS24.MM.Snippet.URL, true);
			xmlHttp.onreadystatechange = function () {
				if (xmlHttp.readyState == 4 && xmlHttp.status==200) {
					document.getElementById(IS24.MM.Snippet.DivId).innerHTML = xmlHttp.responseText;
				}
				else {
					return false;
				}
			}; 
			xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			xmlHttp.send(null);
		}

		// bookmark page (ie and firefox only)
		IS24.registerNS("IS24.MM.Bookmark");
		IS24.MM.Bookmark.Titel = document.title;
		IS24.MM.Bookmark.URL = location.href;
		IS24.MM.Bookmark.DivId = "bookmark";

		IS24.MM.Bookmark.bookmarkPage = function () {
			if (window.sidebar) { // firefox
				window.sidebar.addPanel(IS24.MM.Bookmark.Titel, IS24.MM.Bookmark.URL, "");
			}
			else if(window.external && window.document.all) { // ie
				window.external.AddFavorite(IS24.MM.Bookmark.URL, IS24.MM.Bookmark.Titel);
			}
			return false;
		}

		// onload handler
		IS24.MM.lastOnLoad = (typeof window.onload == 'function') ? window.onload : null; 
		window.onload = function () {
			// alte onload
			if (IS24.MM.lastOnLoad != null) { IS24.MM.lastOnLoad(); }
			// Snippet laden	
			if (document.getElementById(IS24.MM.Snippet.DivId) != null ) IS24.MM.Snippet.load();
			// Bookmark einblenden
			if (document.getElementById(IS24.MM.Bookmark.DivId) != null ) {
				document.getElementById(IS24.MM.Bookmark.DivId).onclick = IS24.MM.Bookmark.bookmarkPage;
				if (window.sidebar || (window.external && window.document.all)) 
					document.getElementById(IS24.MM.Bookmark.DivId).className = "";
			}
		}

		// nedstat reporting
		IS24.registerNS("IS24.MM.Reporting");
		IS24.MM.Reporting.ns_pixelUrl = function () {
			var ftc = "";
			var kw = "";
			var ns_linkname = "";
			var campaign = "";
			var adid = "";
			var params = location.search.replace(/\?/,"").split("&");
			for (var i=0; i<params.length; i++) {
				var key = params[i].split("=")[0];
				var val = params[i].split("=")[1];
				if (key=="ftc") ftc = val;
				if (key=="kw" || key=="OVKEY") {
					kw = val;
					ns_linkname = val;
				}
				if(key == "adid") adid = val;
			}
			if (ftc != "") {
				campaign = campaign + "&ns_mchannel=external";
				campaign = campaign + "&ns_campaign="+ftc;
				campaign = campaign + "&ftc="+ftc;
				campaign = campaign + "&kw="+kw;
				campaign = campaign + "&ns_linkname="+ns_linkname;
				campaign = campaign + "&ns_source=ftc&ns_fee=0";
			}
			else if(adid  != ""){
				// campaign zusammenbauen wenn AdId bekannt
				campaign = campaign + "&ns_mchannel=internal";
				campaign = campaign + "&ns_campaign="+adid;
				campaign = campaign + "&icmp="+adid;
				campaign = campaign + "&ns_linkname=adserver";
				campaign = campaign + "&ns_source=adserver&ns_fee=0";
			}
			if (location.search.indexOf("icmp") != -1) {
				campaign = campaign + "&" + location.search.replace(/\?/,"");
			}
			var countername = "is24.de.mm" + location.pathname.replace(/\//g,".");
			countername = countername.indexOf(".html") == -1 ? countername + "index" : countername.replace(/\.html/g,"");
			var loc = location.protocol;
			var url = loc + "//de.sitestat.com/is24/mm/s?" + countername + campaign;
			return url;
		}();

		// sitestat function call
		(function(u){
			var d=document;
			ns_pixelUrl=u+"&ns__t="+(new Date().getTime());
			var ns_url=ns_pixelUrl+"&ns_c="+((d.characterSet)?d.characterSet:d.defaultCharset)+"&ns_ti="+escape(d.title)+"&ns_jspageurl="+escape(d.URL)+"&ns_referrer="+escape(d.referrer);
			var content="<p><img src=\""+ns_url+"\" height=\"1\" width=\"1\" alt=\"*\"></p>";
			d.write(content);
		})(IS24.MM.Reporting.ns_pixelUrl);
/**
 * END
 */


/** START FORM-VALIDATION
*
*/

function mm_validateForms() {
	var formulare = document.getElementsByTagName("form");
	for(var i = 0; i < formulare.length; i++) {
		var input = formulare[i].getElementsByTagName("input");
		for(var a = 0; a < input.length; a++) {
			if (input[a].className.indexOf("js_required") != -1){	
				formulare[i].onsubmit = function(event){
				
					var formular = this; // reference to current form
					var input = formular.getElementsByTagName("input");
					var label =  formular.getElementsByTagName("label");
					var regExpText = new RegExp( "([a-zA-Z0-9_.-])" );
					var regExpMail = new RegExp( "([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+" );
					var regExpTel = new RegExp( "([0-9_.-])" );
					var hasError = false;
					
					// reset the error classes
					for(var j = 0; j < label.length; j++) { label[j].className = ""; } 
					for(var i = 0; i < input.length; i++) {
						var inputValue = trim(input[i].value);
						if (input[i].className.indexOf("js_required") != -1 && inputValue == ""){
							setLabelClassForInput(label, input[i], "invalid");
							hasError = true; //return false;
						} else if ( input[i].className.indexOf("js_required") != -1 && input[i].id == "company"){
					
							if (inputValue == "") {
								setLabelClassForInput (label, input[i], "invalid");
								hasError = true; //return false;
							}
						}
							else if ( input[i].className.indexOf("js_required") != -1 && input[i].id == "last_name"){
					
							if (inputValue == "") {
								setLabelClassForInput (label, input[i], "invalid");
								hasError = true; //return false;
							} else if ( regExpText.exec(inputValue) == null ) {
								setLabelClassForInput (label, input[i], "invalid");
								hasError = true; //return false;							
							}
						}	else if ( input[i].className.indexOf("js_validate") != -1 && input[i].id == "phone"){
							
							if (inputValue == "") {
								setLabelClassForInput (label, input[i], "invalid");
								hasError = true; //return false;
							} else if ( regExpTel.exec(inputValue) == null ) {
							
								setLabelClassForInput (label, input[i], "invalid");
								hasError = true; //return false;							
							}
						} else if ( input[i].className.indexOf("js_validate") != -1 && input[i].id == "email"){
				
							if (inputValue == "") {
								setLabelClassForInput (label, input[i], "invalid");
								hasError = true; //return false;
							} else if ( regExpMail.exec(inputValue) == null ) {
								setLabelClassForInput (label, input[i], "invalid");
								hasError = true; //return false;							
							}
						} 
										
						if (hasError) {
							input[i].value = inputValue;
						} else {
							YAHOO.util.Dom.removeClass(input[i].id, 'invalid');
						}
						
					}
					if (hasError) {
						element = document.getElementById("errorbox");
						element.style.display = "block";
						window.scrollTo(0, 0);
						
						if(window.event && !window.event.returnValue){
							window.event.returnValue = false;
						} else{
							
							return false;}
						
					} else { return true; }					
				}; // end function
				break; // attach submit handler only once
			}
		}
	}
}

function setLabelClassForInput (labels, input, className) {
	var id = input.id;
	for(var j = 0; j < labels.length; j++) {
		if (labels[j].htmlFor == id) {
			labels[j].className = className;
			YAHOO.util.Dom.addClass(id, className);
		}
	}
}

function trim(s) {
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}



/**	END FORM-VALIDATION
*	
*/
