/*#############################################################
Name: Niceforms + obsluga dla moto-top.de
Version: 0.9
Author: Lucian Slatineanu
URL: http://www.badboy.ro/

Feel free to use and modify but please provide credits.
#############################################################*/

//global variables that can be used by all the functions on this page.
var forms;
var hovers = new Array();
var buttons = new Array();
var submit = new Array();
var insertLinks = new Array();

//this function runs when the page is loaded so put all your other onload stuff in here too.
function init() {
	getForms();
	getHovers();
	getButtons();
	getInsertLinks();
	
	hoverEffects();
	buttonHovers();
	buttonSubmit();
	insertLinkEffects();
}

function getHovers() {
	//get all elements (text inputs, passwords inputs, textareas)
	var elements = document.getElementsByTagName('input');
	
	var j = 0;
	for (var i4 = 0; i4 < elements.length; i4++) {
		if((elements[i4].type=='text')||(elements[i4].type=='password')) {
			hovers[j] = elements[i4];
			++j;
		}
	}
	elements = document.getElementsByTagName('textarea');
	for (var i4 = 0; i4 < elements.length; i4++) {
		hovers[j] = elements[i4];
		++j;
	}
}

	function hoverEffects() {
		//add focus effects
		var bufor;
		for (var i4 = 0; i4 < hovers.length; i4++) { 
			hovers[i4].onfocus = function() {
										this.className += "Hovered";
										//usuwanie opisow pol
										if (	( this.value == " " ) ||	//Pola "input" maja "value=' '", czyli spacje. Bez tego mechanizmu pojawia sie w polach napis "undefined" po wejsciu w nie i wyjsciu.
												(	
													( this.id == "marke") ||
													( this.id == "modell") ||
													( this.id == "erstzulassung") ||
													( this.id == "laufleistung") ||
													( this.id == "preisvorstellung" ) ||
													( this.id == "email") ||
													( this.id == "name" ) ||
													( this.id == "telefon")
												) && (
													( this.value == "Marke" ) ||
													( this.value == "Modell" ) ||
													( this.value == "Erstzulassung" ) ||
													( this.value == "Laufleistung" ) ||
													( this.value == "Preisvorstellung" ) ||
													( this.value == "eMail" ) ||
													( this.value == "Name" ) ||
													( this.value == "Telefon" )
												)
											) {
											bufor = this.value;
											this.value = '';
										} else {
											this.style.color = 'black';
										}
									}
			
			hovers[i4].onblur =	function() {
									this.className = this.className.replace(/Hovered/g, "");
									//przywrocenie opisu pol jesli sa puste
										if ( this.value == '' ) {
											this.value = bufor;
										} else {
											this.style.color = 'black';
										}
								}
		}
	}

function getButtons() {
	//get all buttons
	var elements = document.getElementsByTagName('input');
	var j = 0;
	for (var i5 = 0; i5 < elements.length; i5++) {
		if( (elements[i5].type=='submit') || (elements[i5].type=='reset') ) {
			buttons[j] = elements[i5];
			++j;
		}
	}
}

	function buttonHovers() {
		//add hover effects
		for (var i5 = 0; i5 < buttons.length; i5++) {
			buttons[i5].onmouseover = function() {this.className += "Hovered";}
			buttons[i5].onmouseout = function() {this.className = this.className.replace(/Hovered/g, "");}
		}
	}

function getForms() {
	//get all forms
	forms = document.getElementsByTagName('form');
}

	function buttonSubmit() {
		//add obligatory error effects
		var bufor_className = new Array();
		var error = new Array();
										
		for (var i6 = 0; i6 < forms.length; i6++) {
			forms[i6].onsubmit = 	function() {
										for (var i7 = 0; i7 < hovers.length; i7++) {
											if ( hovers[i7].className == bufor_className[i7] + "ObligatoryHovered" ) {
												hovers[i7].className = bufor_className[i7];
												error[i7] = 0;
											} else if ( hovers[i7].className == bufor_className[i7] + "Obligatory" ) {
												hovers[i7].className = bufor_className[i7];
												error[i7] = 0;
											}
											
											if (	(	( hovers[i7].id == "name" ) ||
														( hovers[i7].id == "email") ||
														( hovers[i7].id == "modell") ||
														( hovers[i7].id == "marke") ||
														( hovers[i7].id == "anfrage") ||
														( hovers[i7].id == "fur_handler")
													) && (
														( hovers[i7].value == " " ) ||
														( hovers[i7].value == "Name" ) ||
														( hovers[i7].value == "eMail" ) ||
														( hovers[i7].value == "Marke" ) ||
														( hovers[i7].value == "Modell" )
													)
												) {
													bufor_className[i7] = hovers[i7].className;
													hovers[i7].className += "Obligatory";
													error[i7] = 1;
											}
										}

										for (var i7 = 0; i7 < hovers.length; i7++) {
											if ( error[i7] == 1 ) {
												return false;
											}
										}
									}
		}
	}

function getInsertLinks() {
	//get all links with motors 'marke' and 'modell' from 'side_box'
	var elements = document.getElementsByTagName('a');
	
	var j = 0;
	for (var i5 = 0; i5 < elements.length; i5++) {
		if( elements[i5].className=='js_insertLink' ) {
			insertLinks[j] = elements[i5];
			++j;
		}
	}
}

	function insertLinkEffects() {
		//add insert data from links into current form effects
		for (var i8 = 0; i8 < insertLinks.length; i8++) {
			insertLinks[i8].onclick =	function() {
											var link = this.toString();
											var index_begin, index_end;
											
											function insert() {
												hovers[i9].value = link.substring(index_begin, index_end).replace(/%20/g, " ");
											}
											
											for (var i9 = 0; i9 < hovers.length; i9++) {
												switch ( hovers[i9].id ) {
													case "marke":
														index_begin = link.indexOf ( "marke" ) + 6;
														index_end = link.indexOf ( "&" );
														insert();
													break;
													case "modell":
														index_begin = link.lastIndexOf ( "modell" ) + 7;
														index_end = link.length;
														insert();
													break;
												}
											}
											
											return false;
										}
		}
	}

window.onload = init;