/**
 *  Form-Error-Handling START
 */

function checkFormSubmit(model) {
	form_valid = false;


	switch (model) {
		
		case 'dokumente':
			model = "dokument";	
			if (checkInputField(model, "titel") &
				checkInputField(model, "bestaetigung", "checkbox")) {
				form_valid = true;
			}
		break;
		
		case 'kalender_event':
			model = "event";
			if (checkInputField(model, "titel") &
				checkInputField(model, "datum", "date") &
				checkInputField(model, "startzeit") &
				checkInputField(model, "location") &
				checkInputField(model, "beschreibung", "rte")) {
					form_valid = true;
			}
		break;
		
		case 'profile_password':
			if (checkInputField(model, "password_alt") &
				checkInputField(model, "password_neu") &
				checkInputField(model, "password_neu2")) {
				form_valid = true;
			}
		break;		
		
		case 'einladenuser':
			if (checkInputField(model, "username")) {
					form_valid = true;
			}
		break;		
		
		case 'einladenmail':
			if (checkInputField(model, "mails")) {
					form_valid = true;
			}
		break;
		
		case 'private_nachricht':
			if (checkInputField(model, "message")) {
					form_valid = true;
			}
		break;
		
		case 'sl_newsletter_send':
			model = "newsletter";
			if (checkInputField(model, "recipient", "checkboxes")) {
					form_valid = true;
			}
		break;
		
		case "sl_newsletter":
			model = "textpage";
			if (checkInputField(model, "body")) {
					form_valid = true;
			}
		break;		
		
		case 'forum_beitrag':
			model = "forum";
			if (checkInputField(model, "message")) {
					form_valid = true;
			}
		break;
		
		case 'forum_neu':
			model = "forum";
			if (checkInputField(model, "titel") &
				checkInputField(model, "message")) {
					form_valid = true;
			}
		break;	
			
		
		case 'gruppe':
			if (checkInputField(model, "title") &
				/*checkInputField(model, "type") &*/
				checkInputField(model, "description", "rte")) {
					form_valid = true;
			}
		break;
		
		case 'eventanmeldung':
			if (checkInputField(model, "titel") &
				checkInputField(model, "datum") &
				checkInputField(model, "startzeit") &
//				checkInputField(model, "location") &
				checkInputField(model, "team_count") &
				checkInputField(model, "team_waits") &
/*				checkInputField(model, "team_min") &
				checkInputField(model, "team_max") & */
				checkInputField(model, "registration_start_date") &
				checkInputField(model, "registration_start_time") &
				checkInputField(model, "registration_end_date") &
				checkInputField(model, "registration_end_time")) {
					form_valid = true;
			}
			
			
		break;

		case 'user_report':
			if (checkInputField(model, "name") &
				checkInputField(model, "mail") &
				checkInputField(model, "message")) {
				form_valid = true;
			}
		break;

		case 'profile_complete':
			if (checkInputField(model, "vorname") &
				checkInputField(model, "name") &  
				checkInputField(model, "geschlecht", 'radio') &
				//checkInputField(model, "birthday", 'date') &
				//checkInputField(model, "college", 'selectfree') &
        checkInputField(model, "agb", 'checkbox') &				
				checkInputField(model, "course", 'selectfree')) {
				//checkInputField(model, "password_0") &
				//checkInputField(model, "password", 'passwords')) {
				form_valid = true;
			}
		break;

		case 'login_message':
			if (checkInputField(model, "email") &
				checkInputField(model, "password")) {
				form_valid = true;
			}
		break;
		
		case 'user_register':
			model = "register";
			if (checkInputField(model, "usermail", 'email') &
				checkInputField(model, "password") &
				checkInputField(model, "agb", 'checkbox')) {
				form_valid = true;
			}
		break;
		
		case "sl_gallery":
			model = "gallery";
			if (checkInputField(model, "title") &
				checkInputField(model, "period", 'date') &
				checkInputField(model, "location")) {
					form_valid = true;
			}
		break;		
		
		case "sl_textpage":
			model = "textpage";
			if (checkInputField(model, "titel") &
				checkInputField(model, "body", "rte")) {
					form_valid = true;
			}
		break;
		
		case "sl_news":
			model = "news";
			if (checkInputField(model, "titel") &
				checkInputField(model, "beschreibung", "rte") &
				checkInputField(model, "category", "checkboxes")) {
					form_valid = true;
			}
		break;
		
		default:
			alert('ungültige Überprüfung');
			break;
	}
	
	checkElementExists(model + '_error_found');
	
	if (form_valid) {
		// Example: news_error_found
		$('#' + model + '_error_found').hide();
	} else {
		$('#' + model + '_error_found').show();
	}
	
	return form_valid;
}

function checkInputField(model, field, fieldtype, options){

	/* Exampel: 
	 * 		news_descripton_label
	 * 		news_descripton_input
	 */

	labelID = model + '_' + field + '_label';
	inputID = model + '_' + field + '_input';

	checkElementExists(labelID);
	if (fieldtype != "radio" &&
		fieldtype != "selectfree" &&
		fieldtype != "checkboxes" &&
		fieldtype != "passwords" &&
		fieldtype != "something_active") {
		checkElementExists(inputID);
	}

	valid = false;
	
	switch (fieldtype) {
	
		case "rte":
			if (tinyMCE.get(inputID).getContent() != "<p></p>" && 
			    tinyMCE.get(inputID).getContent() != "") {
				valid = true;
			} else {
				if (tinyMCE.get(inputID).getContent() != "<p></p>" &&
				tinyMCE.get(inputID).getContent() != "") {
					valid = true;
				}
			}
			break;
		
		case "selectfree":
			if ($('#' + model + '_' + field + '_0_input').val() ||
				$('#' + model + '_' + field + '_1_input').val()) {
					valid = true;
				}
			
			break;
		
		case "radio":
			$i = 0;
			while ($('#' + model + '_' + field + '_' + $i + '_input').length > 0) {
				if ($('#' + model + '_' + field + '_' + $i + '_input:checked').length > 0) {
					valid = true;
				}
				$i = $i + 1;
			}
			break;
		
		case "checkboxes":
			$i = 0;
			while ($('#' + model + '_' + field + '_' + $i + '_input').length > 0) {
				if ($('#' + model + '_' + field + '_' + $i + '_input:checked').val() == "on") {
					valid = true;
				}
				$i = $i + 1;
			}
			break;		
		
		case "passwords":
			if (($('#' + model + '_' + field + '_1_input').val() != "") &&
				($('#' + model + '_' + field + '_0_input').val() ==
				$('#' + model + '_' + field + '_1_input').val())) {
				return true;
			}
		
			break;
		
		case "checkbox":
			if ($('#' + inputID + ':checked').val() == "on") {
				valid = true;
			}
			break;
		
		case "email":
			if (validateEmail($('#' + inputID).val())) {
				valid = true;
			}
			break;
			
		case "date":
			if (isDate($('#' + inputID).val())) {
				valid = true;
			}
			break;	
			
		default:
			if ($('#' + inputID).val() != "") {
				valid = true;
			}
			break;
	}
	
	if (!valid) {
		$('#' + labelID).addClass('input-invalid');
	} else {
		$('#' + model + '_' + field + '_label').removeClass('input-invalid');
	}
	
	return valid;
}

function validateEmail(email){
	email = email.replace("ö", "oe");
	email = email.replace("ä", "ae");
	email = email.replace("ü", "ue");
	email = email.replace("Ö", "oe");
	email = email.replace("Ä", "ae");
	email = email.replace("Ü", "ue");
	
    var splitted = email.match("^(.+)@(.+)$");
    if (splitted == null) 
        return false;
    if (splitted[1] != null) {
        var regexp_user = /^\"?[\w-_\.]*\"?$/;
        if (splitted[1].match(regexp_user) == null) 
            return false;
    }
    if (splitted[2] != null) {
        var regexp_domain = /^[\w-\.]*\.[A-Za-z]{2,4}$/;
        if (splitted[2].match(regexp_domain) == null) {
            var regexp_ip = /^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
            if (splitted[2].match(regexp_ip) == null) 
                return false;
        }// if
        return true;
    }
    return false;
}

function isDate(txtDate){
    var objDate;
    var mSeconds;
    if (txtDate.length != 10) 
        return false;
    var day = txtDate.substring(0, 2) - 0;
    var month = txtDate.substring(3, 5) - 1;
    var year = txtDate.substring(6, 10) - 0;
    if (txtDate.substring(2, 3) != '.') 
        return false;
    if (txtDate.substring(5, 6) != '.') 
        return false;
    if (year < 999 || year > 3000) 
        return false;
    mSeconds = (new Date(year, month, day)).getTime();
    objDate = new Date();
    objDate.setTime(mSeconds);
    if (objDate.getFullYear() != year) 
        return false;
    if (objDate.getMonth() != month) 
        return false;
    if (objDate.getDate() != day) 
        return false;
    return (true);
}


function checkElementExists(id) {
	if ($('#' + id).length == 0) {
		alert('Element mit der ID: ' + id + " nicht gefunden");
	}
}

/**
 *  Form-Error-Handling END
 */

/**
 * Infotexte in Textelementen START
 */

function checkFieldContent(object, state, text){
	if ($(object).val() == "" && state == 0) {
		$(object).addClass('kursiv');
		$(object).addClass('grey');
		$(object).val(text);
	}
	else 
		if ($(object).val() == text && state == 1) {
			$(object).removeClass('kursiv');
			$(object).removeClass('grey');
			$(object).val("");
		}
}



/**
 * Infotexte in Textelementen ENDE
 */

function user_report(side_path) {
/*	user_report_name
	user_report_mail
	user_report_message
	user_report_error_found
	user_report_success
*/

	name = $('#user_report_name').val();
	mail = $('#user_report_mail').val();
	message = $('#user_report_message').val();

	pageurl = $('#user_report_pageurl').val();
	referrer = $('#user_report_pageurl').val();
	post = $('#user_report_post').val();
	
	browser = "";
	
    jQuery.each(jQuery.browser, function(i, val) {
        browser = browser + "Browser: " + i + ":" + val;
	});


	if (name == "Dein Name" ||
		mail == "Deine E-Mailadresse" ||
		message == "Deine Nachricht an unseren Support") {
		$('#user_report_error_found').show();
		return false;
	} else {
		$('#user_report_error_found').hide();
	}
		
	postArray = {
		user_report_name: name,
		user_report_mail: mail,
		user_report_message: message,
		pageurl: pageurl,
		referrer: referrer,
		user_report_post: post,
		browser: browser,
		ajax: true
	}


	$.post(side_path + 'feedback/', postArray,
	function(data){
		$('#user_report_success').show();
		name = $('#user_report_name').val("Dein Name");
		mail = $('#user_report_mail').val("Deine E-Mailadresse");
		message = $('#user_report_message').val("Deine Nachricht an unseren Support");	
		
		$('#user_report_name').addClass('kursiv');
		$('#user_report_name').addClass('grey');
		$('#user_report_mail').addClass('kursiv');
		$('#user_report_mail').addClass('grey');
		$('#user_report_message').addClass('kursiv');
		$('#user_report_message').addClass('grey');	
	});
	
	return false;
}

function sendInvitations(urlPath) {
	
	$('#invitation_error_found').fadeOut();
	$('#invitation_success').fadeOut();
	
	sender = $('#invitation_sender').val();
	recipient = $('#invitation_recipient').val();
	if (sender == '' || recipient == '' || !validateEmail(recipient)) {
		$('#invitation_error_found').fadeIn("slow");
		return false;
	}
	
	postArray = {
		name: sender,
		mail: recipient,
		ajax: true
	}
	
	$('#invitation_recipient').val("E-Mail deines Kommilitonen");
	
	$.post(urlPath + 'einladen/', postArray,
	function(data){
		$('#invitation_success').fadeIn();
		
/*		$('#invitation_recipient').addClass('kursiv');
		$('#invitation_recipient').addClass('grey');
		$('#invitation_sender').addClass('kursiv');
		$('#invitation_sender').addClass('grey');
*/
		$('#invitation_recipient').focus();	
	});
	
		
	return false;	
}

function toggleEntries(element, prefix) {
	toggling_element = $('#' + prefix + '_entries');
	//toggling_element.slideToggle();
	
	if (toggling_element.css('display') == 'none') {
		toggling_element.show();
	} else {
		toggling_element.hide();
	}
	return false;
}

function showPictureSelect(id) {
	/* 
	 * EXAMPLE:
	 * ident = 4
	 * type = "infoseite"
	 */
	$.nyroModalManual({
		forceType : id,
		background : '#ffffff'
	});
}

function acceptPictureSelect(content){
	jQuery.nyroModalRemove();
	content = '<img src="img_file_cache/' + content + '_0_0.jpg" alt="" />';
	tinyMCE.execCommand('mceInsertContent',false,content);
}

sfHover = function() {
                var sfEls = document.getElementById("nav-secondary").getElementsByTagName("LI");
                for (var i=0; i<sfEls.length; i++) {
                    sfEls[i].onmouseover=function() {
                        this.className+=" sfhover";
                    }
                    sfEls[i].onmouseout=function() {
                        this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
                    }
                }
            }
            if (window.attachEvent) window.attachEvent("onload", sfHover);
