﻿blendgrau = 200;
blendbild = 300;
imageBig = 800;

alreadyRunning = false;

$('document').ready(function() {
    $('#grau').add('#divpic').fadeTo(0, 0.0);
    
    $('#pic').add('#closeButton').click(function() {
        if(alreadyRunning == false) {
	        alreadyRunning = true;
	        $('#divpic').fadeTo(blendbild, 0, function() {
	            $('#divpic').css('visibility', 'hidden');
	        });
    	    
	        $('#grau').fadeTo(blendgrau, 0, function() {
	            $('#grau').css('visibility', 'hidden');
	        });
    	    
	        alreadyRunning = false;
	    }
    });
    $('#submitButtonForForm').click(function() {
        var endErrorMessage = "";
        
        var errorField;
        
        var focusNotSet = true;
        var allTestsPassed = true;
        for(var i=0;i<toBeTestedFields.fields.length;i++) {
            var fieldName = toBeTestedFields.fields[i].name;
			var testElement = testElementValue = $('input[name=' + fieldName + ']');
            var testElementValue = testElement.val();
            var testOnLength = toBeTestedFields.fields[i].testOn.length;
            
            var message = toBeTestedFields.fields[i].errorMessage;
            
			var error = false;
			
			var passed = true;
			
            for(var j=0;j<testOnLength;j++) {
                var test = toBeTestedFields.fields[i].testOn[j];
                
                //check on parameters
                var paramStart = test.indexOf("[");
                
                params = null;
                if(paramStart < 0) {
                    paramStart = test.length;
                } else {
                    paramEnd = test.indexOf("]", paramStart+1);
                    params = test.substring(paramStart+1, paramEnd);
                    params = params.split(";");
                    params = createJSONParameters(params);
                }
                
                test = test.substring(0, paramStart);
                
                if(test == "isEmpty") {
                    if(!notemptystring(testElementValue)) {
						allTestsPassed = false;
						passed = false;
                        break;
                    }
                }
                if(test == "isEmail") {
                    if(!isemail(testElementValue)) {
						allTestsPassed = false;
						passed = false;
                        break;
                    }
                }
                if(test == "isChecked") {
                    if($('input[name=' + fieldName + ']:checked').length == 0) {
						allTestsPassed = false;
						passed = false;
						break;
                    }
                }
                if(test == "isNumeric" && isNaN(testElementValue)) {
                    allTestsPassed = false;
                    passed = false;
                    break;
                }
                if(test == "length") {
                    $.each(params, function(key, value) {
                        if((key == "minLength" && testElementValue.length < value) ||
                           (key == "maxLength" && testElementValue.length > value)) {
                            allTestsPassed = false;
                            passed = false;
                        }
                    });
                }
            }
			
			if(!passed) {
				if(testElement.attr('type') == "text") {
					testElement.css('background-color', '#FF7979');
				}
				//$('#error_' + fieldName).show();
			}
			
            if(allTestsPassed == false && focusNotSet) {
                $('input[name=' + fieldName + ']').focus();
                focusNotSet = false;
            }
        }
		
        if(allTestsPassed) {
			$('form[name=input_form]').submit();
        }
    });
	
	$('.formular input').change(function() {
		if($(this).attr('type') == "text") {
			$(this).css('background-color', 'white');
		}
		fieldName  = $(this).attr('name');
		$('#error_' + fieldName).hide();
	});
});

//kreiert aus den Parametern eine JSON-Liste
function createJSONParameters(params) {
    var json = {};
    
    $.each(params, function(k, v) {
        var paramSplit = v.split("=");
        var key = paramSplit[0];
        var value = paramSplit[1];
        
        json[key] = value;
    });
    return json;
}

//setzt die Sprache
function selectlang(lang) {
    window.location.href = window.location.href.replace(/(lang=)./, 'lang=' + lang)
}

//Hilfsfunktion für Javascriptüberprüfung des Formulars
//überprüft ob ein String leer ist
function notemptystring(instring)
{
    //trim
    instring.replace(/^\s+|\s+$/g,"");
	if (instring !="") return true
}

//Hilfsfunktion für Javascriptüberprüfung des Formulars
//überprüft ob die E-Mail korrekt ist
function isemail(inmail)
{
    var usr = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
	var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
	var regex = "^" +usr + "\@" + domain + "$";
    
    var rgx = new RegExp(regex);
	if (rgx.exec(inmail)) {
		return true;
	}
}

function testvalues(alr_firstname, alr_name, alr_addres, alr_city, alr_country, alr_email)
{
	t_test = true
	fehlerfeld = null
	fehlerString = ""
		if (!(notemptystring(document.jaform.lastname.value)))
		{
			fehlerString = fehlerString + alr_firstname + "\n";
			if(t_test==true) {
				fehlerfeld = document.jaform.lastname
			}
			t_test = false
		}
		if (!(notemptystring(document.jaform.firstname.value)))
		{
			fehlerString = fehlerString + alr_name + "\n";
			if(t_test==true) {
				fehlerfeld = document.jaform.firstname
			}
			t_test = false
		}
		if (!(notemptystring(document.jaform.addres.value)))
		{
			fehlerString = fehlerString + alr_addres + "\n";
			if(t_test==true) {
				fehlerfeld = document.jaform.addres
			}
			t_test = false
		}
		if (!(notemptystring(document.jaform.city.value)))
		{
			fehlerString = fehlerString + alr_city + "\n";
			if(t_test==true) {
				fehlerfeld = document.jaform.city
			}
			t_test = false
		}
		if (!(notemptystring(document.jaform.country.value)))
		{
			fehlerString = fehlerString + alr_country + "\n";
			if(t_test==true) {
				fehlerfeld = document.jaform.country
			}
			t_test = false
		}
		if (!(isemail(document.jaform.email.value)))
		{
			fehlerString = fehlerString + alr_email + "\n";
			if(t_test==true) {
				fehlerfeld = document.jaform.email
			}
			t_test = false
		}
	if (t_test) {
		document.jaform.submit()
	} else {
		alert(fehlerString)
		fehlerfeld.focus()
	}

}

function addBookmark(url,title) {
    window.external.AddFavorite(url,title);
}

function job() {
print();
close();
}

function singleimg(picname, title) {
	if(alreadyRunning == false) {	    
	    alreadyRunning = true;
	    //falls kein Bildname angegeben wird, wird dieser auf "" gesetzt
	    var title = (title == null) ? "" : title;
	    
	    $('#grau').css('visibility', 'visible');
	    $('#divpic').css('visibility', 'visible');
	    $('#pic').attr('src', "/uEditor/thumb.aspx?src=" + picname + "&width=" + imageBig);
	    $('#pictitel').html(title);
        
        $('#grau').fadeTo(blendgrau, 0.5);
        $('#divpic').fadeTo(blendbild, 1);
	    alreadyRunning = false;
	}
}

//Funktionen für Lauftext

function initLauftext(wrapperElement, lauftextWrapperElement, lauftextElement) {
    wrapperEl = document.getElementById(wrapperElement);
    
    laufWrapper = document.getElementById(lauftextWrapperElement);
    lauf = document.getElementById(lauftextElement);
    
    laufWrapper.style.marginLeft = (wrapperEl.offsetWidth) + "px";
    lauf.style.visibility = 'visible';
    startLauftext(wrapperElement, lauftextWrapperElement, lauftextElement);
}

function startLauftext(wrapperElement, lauftextWrapperElement, lauftextElement) {
    wrapperEl = document.getElementById(wrapperElement);
    laufWrapper = document.getElementById(lauftextWrapperElement);
    lauf = document.getElementById(lauftextElement);

    var newMargin = parseInt(laufWrapper.style.marginLeft.replace("px", "")) - 2;
    
    if(newMargin < ((lauf.offsetWidth) * -1)) {
        laufWrapper.style.marginLeft = wrapperEl.offsetWidth + "px";
    } else {
        laufWrapper.style.marginLeft = newMargin + "px";
    }
    
    loopLauftext(wrapperElement, lauftextWrapperElement, lauftextElement);
}

function loopLauftext(wrapperElement, lauftextWrapperElement, lauftextElement) {
    laufschrifttakt = setTimeout("startLauftext('" + wrapperElement + "', '" + lauftextWrapperElement + "', '" + lauftextElement + "')", 15);
}

function showAdress(beforeAt, afterAt, topLevel) {
    document.write(beforeAt + "@" + afterAt + "." + topLevel);
}
