// JavaScript Document
$(document).ready(function() {
	$.fn.maphilight.defaults = {
	fill: true,
	fillColor: '00ff00',
	fillOpacity: 0.2,
	stroke: true,
	strokeColor: '00ff00',
	strokeOpacity: 0.2,
	strokeWidth: 0,
	fade: true,
	alwaysOn: false
	}
	var options = { 
        target:        '#msg',
        beforeSubmit:  validateData,
 		url: 		   'sendmsg.php',
		type: 		   'post',
		resetForm: true
    }; 
	$('div#top,div#container').ifixpng(); 
	$("#apartmentlist").tablesorter( {sortList: [[0,0]], headers: {8:{sorter: false}}, widgets: ['zebra']} );
	$('#dContent').jScrollPane();
	$('#contact').ajaxForm(options);
	
}); 

this.loadList = function(file) {
	$("#dContent").load(file,"",sortTable);	
}

this.popupWin = function(url) {
    window.open(url,'floorplan','status=yes,resizable=no,width=800,height=600');
    return false;
}

this.sortTable = function() {
	$("#apartmentlist").tablesorter( {sortList: [[0,0]], headers: {8:{sorter: false}}, widgets: ['zebra']} );
	$('#dContent').jScrollPane();
}

this.loadFloorplan = function(file)
{
	$("#dContent").load(file,"",loadImageMap);
}
	
this.loadImageMap = function() {
	$('.map').maphilight();
	$('#dContent').jScrollPane();	
}

this.apartmentDetails = function(text){
	    $("#description").html("");
		$("#description").append("<p>"+ text +"</p>");				    				
};

this.clearDetails = function(){
	    $("#description").html("Select building to view apartment list.<br />Click a desired floor on the facade to open level floorplan.");
};

this.clearDetailsHu = function(){
	    $("#description").html("Válassza ki a kívánt épületet a bal oldali képen.<br />A homlokzati képre kattintva emeletet is kiválaszthat.");
};

this.validateData = function(formData, jqForm, options) {
	
	var err=0;
	var msg="";
	var form = jqForm[0]; 
    var array = [ "name", "phone", "mobile" ];	
	var lang = $("#slang").val();
	
	if($("#email").val() != $("#email2").val())
	{
		$("#email","#email2").css({borderColor:"#FF0000"});
		if(lang == "en")
			msg = "Email addresses don't match!";
		else
			msg = "A két email cím nem egyezik!";
		err++;
	}
	else 	
		$("#email","#email2").css({borderColor:"#006699"});
	
	if(!isValidEmail($("#email").val()))
	{
		$("#email").css({borderColor:"#FF0000"});
		if(lang == "en")
			msg = "Please provide a valid email!";
		else
			msg = "Hibás email cím!";
		err++;
		}
	else 	
		$("#email").css({borderColor:"#006699"});
	
	if(!isValidEmail($("#email2").val()))
	{
		$("#email2").css({borderColor:"#FF0000"});
		if(lang == "en")
			msg = "Please provide a valid email!";
		else
			msg = "Hibás email cím!";
		err++;
		}
	else 	
		$("#email2").css({borderColor:"#006699"});
	
	
	jQuery.each(array, function() {
      if($("#" + this).val() == "")
	  {
      	$("#" + this).css({borderColor:"#FF0000"});
		if(lang == "en")
			msg = "Please fill highlighted fields!";
		else
			msg = "Kérjük töltse ki a megjelölt mez&ocirc;ket!";
		err++;
	  }
	  else
	  	$("#" + this).css({borderColor:"#006699"});
    });
	
	if(err >= 1)
	{
		$("#msg").html(msg);
		return false;
	}
	else
	{
		if(lang == "en")
			$("#msg").html("Sending mail... Please wait!");
		else
			$("#msg").html("Üzenet küldése folyamatban...");
		return true;
	}	
	
}

//validate email address
function isValidEmail(email, required) {
    if (required==undefined) {   // if not specified, assume it's required
        required=true;
    }
    if (email==null) {
        if (required) {
            return false;
        }
        return true;
    }
    if (email.length==0) {  
        if (required) {
            return false;
        }
        return true;
    }
    if (! allValidChars(email)) {  // check to make sure all characters are valid
        return false;
    }
    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
        return false;
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
        return false;
    } else if (email.indexOf("@") == email.length) {  // @ must not be the last character
        return false;
    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid
	return false;
    } else if (email.indexOf(".") == email.length) {  // . must not be the last character
	return false;
    }
    return true;
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}