var galeriak = null;

$(document).ready(function() {
	galeriak = new Galeriak();
	
});
/**
 * galériak class
 * 
 * */
function Galeriak() {
	var popup = null;
	var url = "/public/galeriak/galeriak_ajax.php";

	init();
	/**
	 * 
	 * 
	 * initialize
	 * 
	 * 
	 * */
	function init() {
		initPopup();
		initSendMail();
		initSlideShow();
	}
	
	function initSlideShow()
	{
		$("#btnSlideShow").click(slideShow);
	}
	
	function slideShow()
	{
		if ( $(".yoxview").length == 0 ){
			var id_kategoria = $("#id_kategoria").val();
			send({ 
				command: 'slideshow',id_kategoria: id_kategoria},slideShowInitAndStart);
		}else{
			var img_index = $("#img_index").length > 0 ? $("#img_index").val() : 0;
			$(".yoxview").yoxview("open", function(){	$.yoxview.play();	});
			$.yoxview.select( parseInt(img_index,10) );
		}
	}
	
	/*function slideShowInitAndStart(html)
	{
		var img_index = $("#img_index").length > 0 ? $("#img_index").val() : 0;
		$("#slidshow_container").html(html);
		$(".yoxview").yoxview();
		$(".yoxview").yoxview("open", function(){	$.yoxview.play();		});
		$.yoxview.select( parseInt(img_index,10) );
	}
	*/
	
	/**
	
	
	
	function slideShowInitAndStart(html)
	{
		var img_index = $("#img_index").length > 0 	? $("#img_index").val() : 0;
		$("#slidshow_container").html(html);
		$(".yoxview").yoxview();
		$(".yoxview").yoxview("open", function(){	$.yoxview.play();
		$("#yoxview_popupWrap").append($(".slideshow_banner_wrap"));
		$(".banner-img").click(onBannerClick);
		});
		$.yoxview.select( parseInt(img_index,10) );
	}*/
	
	function slideShowInitAndStart(html)
	{
		var img_index = $("#img_index").length > 0 	? $("#img_index").val() : 0;
		
		$("#slidshow_container").html(html);
		
		$(".yoxview").yoxview({popupMargin: "0 130"});
		$(".yoxview").yoxview("open", function(){	
		$("#yoxview_popupWrap").append($(".slideshow_banner_wrap"));
		$(".banner-img").click(onBannerClick);
		var yox_offset = $("#yoxview").offset();
		var top = $("#yoxview").css('top');
		var yox_width =640;
		var ban_off = yox_width/2;
		
		var banners_offset = $("#slideshow_banners").offset();
		var center = ($(".slideshow_banners").width() )/2;
		
		var leftx = center - (ban_off + 120+2);
		var rightx = center + ban_off+3;
		var leftoffset = $(".slideshow_banner_left").offset();
		var rightoffset = $(".slideshow_banner_right").offset();
		leftoffset.left = leftx;
		rightoffset.left = rightx;
		$(".slideshow_banner_left").css('left',leftx);
		$(".slideshow_banner_right").css('left', rightx);
		
		$(".slideshow_banner_left").css('top',top);
		$(".slideshow_banner_right").css('top', top);
		$.yoxview.play();
		});
		$.yoxview.select( parseInt(img_index,10) );
		
	}
	
	function onBannerClick(e)
	{
		e.stopPropagation();
	}
	
	/**
	 * 
	 * add click method to send post card button
	 * 
	 * 
	 * */
	function initSendMail() {
		$("#aSendMail").click(showMailPopup);
	}
	/**
	 * 
	 * show send mail popup. 
	 * 
	 * 
	 * */
	function showMailPopup() {
		var content = "<div><table>";
		content += "<tr><td>Az Ön neve:</td><td><input type='text' id='txtSenderName' class='name-field' /><span class='validator-field name-field-status'></span></td></tr>";
		content += "<tr><td>Az Ön e-mail címe:</td><td><input type='text' id='txtSenderMail' class='mail-field' /><span class='validator-field mail-field-status'></span></td></tr>";
		content += "<tr><td>A címzett neve:</td><td><input type='text' id='txtRecieverName' class='name-field'/><span class='validator-field name-field-status'></span></td></tr>";
		content += "<tr><td>A címzett e-mail címe:</td><td><input type='text' id='txtRecieverMail' class='mail-field' /><span class='validator-field mail-field-status'></span></td></tr>";
		content += "<tr><td>Üzenet:</td><td><textarea id='txtMessage' rows='5' cols='30'></textarea></td></tr>";
		content += "</table><div>";
		content += "<a id='aSend' href='javascript: ;'>Küldés</a>";
		popup.show('Képseslap küldése', content);
		$("#aSend").click(sendMail);

//		$("#txtSenderName").val("roland");
//		$("#txtSenderMail").val("rocho02@freemail.hu");
//		$("#txtRecieverName").val("rocho");
//		$("#txtRecieverMail").val("rocho02@gmail.com");
//		$("#txtMessage").val("hello");

		initMailValidation(onValidation);
		initNameValidation(onValidation);
	}
	/**
	 * 
	 * callback for validation events
	 * 
	 * 
	 * */
	function onValidation(opts)
	{
		var valid = 0;
		
		if ( isValidEmailAddress( $("#txtSenderMail").val() ) == false)
			valid = 1;
		
		if ( isValidEmailAddress( $("#txtRecieverMail").val() ) == false)
			valid = 1;
		
		if ( $("#txtSenderName").val().length == 0)
			valid = 1;
		if ( $("#txtRecieverName").val().length == 0)
			valid = 1;
		
		
		if ( valid == 0)
		{
			$("#aSend").removeClass('disabled');
		}
		else{
			$("#aSend").addClass('disabled');
		}
	}
	/**
	 * 
	 * 
	 * send mail , if all field is filled correctly in the popup
	 * 
	 * */
	function sendMail() {
		if ( $("#aSend").is(".disabled")) return;
		var opts = {
			command : 'postcard',
			txtSenderName : $("#txtSenderName").val(),
			txtSenderMail : $("#txtSenderMail").val(),
			txtRecieverName : $("#txtRecieverName").val(),
			txtRecieverMail : $("#txtRecieverMail").val(),
			txtMessage : $("#txtMessage").val(),
			imgKep : $("#imgKep").attr("src")
		};
		popup.close();
		send(opts, function() {
		});
	}
	/**
	 * 
	 * send request to server
	 * 
	 * 
	 * */
	function send(opts, callback) {
		$.post(url, opts, callback);
	}
	/**
	 * 
	 * initialize the popup
	 * 
	 * 
	 * */
	function initPopup() {
		popup = new ModalPopup();
	}
	/**
	 * 
	 * 
	 * validate a string, if that is a valid email adress or not
	 * 
	 * */
	function isValidEmailAddress(emailAddress) {
		var pattern = new RegExp(
				/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
		return pattern.test(emailAddress);
	}
	/**
	 * 
	 * Add live email validation
	 * 
	 * 
	 * */
	function initMailValidation(callback) {
		$(".mail-field").keyup(function() {
			var email = $(this).val();
			var status = $(this).siblings().filter("span:.mail-field-status");
			var opts = {};
			if (email != 0) {
				if (isValidEmailAddress(email)) {

					opts.valid = 0;
					status.css( {
						"background-image" : "url('/images/validYes.png')"
					});

				} else {
					opts.valid = 2;
					status.css( {
						"background-image" : "url('/images/validNo.png')"
					});
						
				}

			} else {
				opts.valid = 1;
				status.css( {
					"background-image" : "url('/images/validNo.png')"
				});

			}
			callback(opts);
		});
		$(".mail-field").keyup();
	}
	/***
	 * 
	 * 
	 * add live name validation
	 * 
	 * */
	function initNameValidation(callback) {
		$(".name-field").keyup(function() {
			var name = $(this).val();
			var status = $(this).siblings().filter("span:.name-field-status");
			var opts = {};
				if (name.length > 0) {

					opts.valid = 0;
					status.css( {
						"background-image" : "url('/images/validYes.png')"
					});

				} else {
					opts.valid = 2;
					status.css( {
						"background-image" : "url('/images/validNo.png')"
					});
						
				}
			callback(opts);
		});
		$(".name-field").keyup();
	}

}
