sfHover = function() {
	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			if (this.className.split('last').length > 1) {
			  //alert(this.className);
			  this.className+=" sfhover lastie ";

			} else {
			  this.className+=" sfhover "
			}
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
			this.className=this.className.replace(new RegExp(" lastie\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

function validateFormOnSubmit(theForm) {
	var reason = "";

	reason += validateUsername(theForm.username);
	reason += validatePassword(theForm.pwd);
	reason += validateEmail(theForm.email);
	reason += validatePhone(theForm.phone);
	reason += validateEmpty(theForm.from);

	if (reason != "") {
	    alert("Some fields need correction:\n" + reason);
	    return false;
	}

	alert("All fields are filled correctly");
	return false;
}

function validateContactForm(theform) {
	var reason = "";

	reason += validateName(theform.name);
	reason += validateEmail(theform.email);
	reason += validateSubject(theform.subject);
	reason += validateMessage(theform.message);

	if (reason != "") {
	    alert("Some fields need correction:\n" + reason);
	    return false;
	}
}

function validateRezervareForm(theform) {
	var reason = "";

	reason += validateName(theform.nume);
	reason += validateEmail(theform.email);
	reason += validatePhone(theform.telefon);
	reason += validateMessage(theform.mesaj);
	reason += validateNrLocuri(theform.nr_locuri);

	if (reason != "") {
	    alert("Some fields need correction:\n" + reason);
	    return false;
	}
}

function validateRezervareIndForm(theform) {
	var reason = "";

	reason += validateName(theform.nume);
	reason += validateEmail(theform.email);
	reason += validatePhone(theform.telefon);
	reason += validateNrLocuri(theform.nr_locuri);

	if (reason != "") {
	    alert("Some fields need correction:\n" + reason);
	    return false;
	}
}

function validateEmpty(fld) {
	var error = "";

	if (fld.value.length == 0) {
	    fld.style.background = 'Yellow';
	    error = "The required field has not been filled in.\n"
	} else {
	    fld.style.background = 'White';
	}
	return error;
}

function validateUsername(fld) {
	var error = "";
	var illegalChars = /\W/; // allow letters, numbers, and underscores

	if (fld.value == "") {
	    fld.style.background = 'Yellow';
	    error = "You didn't enter a username.\n";
	} else if ((fld.value.length < 5) || (fld.value.length > 15)) {
	    fld.style.background = 'Yellow';
	    error = "The username is the wrong length.\n";
	} else if (illegalChars.test(fld.value)) {
	    fld.style.background = 'Yellow';
	    error = "The username contains illegal characters.\n";
	} else {
	    fld.style.background = 'White';
	}
	return error;
}

function validateName(fld) {
	var error = "";
	//var illegalChars = /\W/; // allow letters, numbers, and underscores

	if (fld.value == "") {
	    fld.style.background = 'Yellow';
	    error = "You didn't enter a name.\n";
	} else if ((fld.value.length < 5) || (fld.value.length > 50)) {
	    fld.style.background = 'Yellow';
	    error = "The name is the wrong length.\n";
	} else if (illegalChars.test(fld.value)) {
	    fld.style.background = 'Yellow';
	    error = "The name contains illegal characters.\n";
	} else {
	    fld.style.background = 'White';
	}
	return error;
}

function validateMessage(fld) {
    var error = "";
    var illegalChars = /\W/; // allow letters, numbers, and underscores

    if (fld.value == "") {
        fld.style.background = 'Yellow';
        error = "You didn't enter a message.\n";
    } else if ((fld.value.length < 5) || (fld.value.length > 15)) {
        fld.style.background = 'Yellow';
        error = "The message is the wrong length.\n";
    } else if (illegalChars.test(fld.value)) {
        fld.style.background = 'Yellow';
        error = "The messsage contains illegal characters.\n";
    } else {
        fld.style.background = 'White';
    }
    return error;
}

function validateSubject(fld) {
    var error = "";
    var illegalChars = /\W/; // allow letters, numbers, and underscores

    if (fld.value == "") {
        fld.style.background = 'Yellow';
        error = "You didn't enter a subject.\n";
    } else if ((fld.value.length < 5) || (fld.value.length > 15)) {
        fld.style.background = 'Yellow';
        error = "The subject is the wrong length.\n";
    } else if (illegalChars.test(fld.value)) {
        fld.style.background = 'Yellow';
        error = "The subject contains illegal characters.\n";
    } else {
        fld.style.background = 'White';
    }
    return error;
}

function validatePassword(fld) {
    var error = "";
    var illegalChars = /[\W_]/; // allow only letters and numbers

    if (fld.value == "") {
        fld.style.background = 'Yellow';
        error = "You didn't enter a password.\n";
    } else if ((fld.value.length < 7) || (fld.value.length > 15)) {
        error = "The password is the wrong length. \n";
        fld.style.background = 'Yellow';
    } else if (illegalChars.test(fld.value)) {
        error = "The password contains illegal characters.\n";
        fld.style.background = 'Yellow';
    } else if (!((fld.value.search(/(a-z)+/)) && (fld.value.search(/(0-9)+/)))) {
        error = "The password must contain at least one numeral.\n";
        fld.style.background = 'Yellow';
    } else {
        fld.style.background = 'White';
    }
   return error;
}

function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
}

function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;

    if (fld.value == "") {
        fld.style.background = 'Yellow';
        error = "You didn't enter an email address.\n";
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        fld.style.background = 'Yellow';
        error = "Please enter a valid email address.\n";
    } else if (fld.value.match(illegalChars)) {
        fld.style.background = 'Yellow';
        error = "The email address contains illegal characters.\n";
    } else {
        fld.style.background = 'White';
    }
    return error;
}

function validatePhone(fld) {
    var error = "";
    var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');

   if (fld.value == "") {
        error = "You didn't enter a phone number.\n";
        fld.style.background = 'Yellow';
    } else if (isNaN(parseInt(stripped))) {
        error = "The phone number contains illegal characters.\n";
        fld.style.background = 'Yellow';
    } else if (!(stripped.length == 10)) {
        error = "The phone number is the wrong length. Make sure you included an area code.\n";
        fld.style.background = 'Yellow';
    }
    return error;
}

function validateNrLocuri(fld) {
    var error = "";
    var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');

   if (fld.value == "") {
        error = "You didn't enter the number of seats.\n";
        fld.style.background = 'Yellow';
    } else if (isNaN(parseInt(stripped))) {
        error = "The number of seats contains illegal characters.\n";
        fld.style.background = 'Yellow';
    }
    return error;
}

$(function() {
        $('#photo_group a').lightBox();
	$('.spectacole_left a').lightBox();
	$('.col_detalii_spectacol_left_content a').lightBox();
	$('#personal li ul').hide();

	$("#personal > li > h2.personal-open + ul").slideToggle("medium");
    $("#personal > li > h2").click(function() {
        $(this).toggleClass("personal-open").removeClass("personal-close").parent().find('> ul').slideToggle("medium");
    });
	
	$('.subcateg li ul').hide();
	$(".subcateg li").click(function(){
		var $link_subcateg = $(this);
		if($link_subcateg.hasClass("subcateg-open")) {
			$link_subcateg.removeClass("subcateg-open").find('ul.personal').hide();
		}
		else {
			$link_subcateg.addClass("subcateg-open").find('ul.personal').show();
		}
	});

});
