/*#############################################################
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 find_empty(text) {
    var string = text;
    var find = 'Pflichtfeld';
    //var string = text.seach(find);
    var matchPos1 = string.search(find);

    if(matchPos1 != -1)
        return true
    else
        return false
}

function hoverEffects() {
    //add focus effects
    var bufor;
    var bufor2;
    for (var i4 = 0; i4 < hovers.length; i4++) {

        hovers[i4].onfocus = function() {
            this.className += "Hovered";
            //usuwanie opisow pol
            //alert(this.value);
            if (	( this.value == " " || find_empty(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;
                bufor2 = 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 = bufor2;
            } 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";
                    hovers[i7].value += ' Pflichtfeld';
                    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;
