/*
	:: Torgheh.ir | First Iranian web application gallery
	:: JavaScript (jQuery) Gallery Control Engine
	:: All Code and design by Hamid-Reza Rahimi
	:: Version 2.5.0 (English) - February 2009
	:: Copyright © 2008 Torgheh.ir | All rights reserved.
	:: VenusDesign Development Team
	:: web-site: http://www.venusdesign.ir
	:: email : hamidrahimi@gmail.com

*/

var T = {	// Torghe Gallery Object
			displayPics: function(){
				if (T.isOnLoading) return false;
				if (arguments.length){
					T.catID = arguments[0];
					T.galleryTitle = arguments[1];
					T.page = arguments[2];
				}
				T.isOnLoading = true;
				T.err = false;
				$(".gallery").fadeOut(100, function(){
					$(this).find("ul").empty();
					T.getPics();
				});
			},
			getHomeContent: function(){
				$.ajax({
					url: "../page_display.php?l=en",
					dataType: 'html',
					timeout: 50000,
					cache: false,
					type: 'POST',
					data: {},
					beforeSend: function(xhr) {
						$("#page_status2", $("#mainp")).text(Msg.loadingHome).addClass("loading");
					},
					error: function(){
						T.isOnLoading = false;
						$("#page_status2", $("#mainp")).hide().removeClass("loading").text(Msg.errConnect).fadeIn("slow");
					},
					success: function(data){
						T.isOnLoading = false;
						$("#mainp").addClass("contentfilled");
						
						var pw = $("#mainp").html(data).find("#weekpic");;
						
						var img = new Image();
						$(img).load(function () {
							pw.find("span")
								.removeClass("loadimage")
								.hide().html('<img src="/gallery/'+pw.attr("rel")+'" />')
								.fadeIn("slow");
						}).error(function () {
							pw.find("span").removeClass("loadimage").html(Msg.picNotLoaded).addClass("err");
						}).attr('src', "/gallery/"+pw.attr("rel"));
					}
				});
			},
			getPics: function() {
				$.ajax({
					url: "../display.php?l=en",
					dataType: 'json',
					timeout: 50000,
					cache: false,
					type: 'POST',
					data: {id: T.catID, page: T.page, key: (T.catID ? "" : T.keySearch) },
					beforeSend: function(xhr) { T.setStatus();},
					error: function(){
						T.isOnLoading = false;
						T.err = true;
						T.setStatus();
					},
					success: function(data){
						T.isOnLoading = false;
						T.setStatus();
						T.putPics(data);
					}
				});
			},
			setStatus: function(){
				$(".post_head span", $("#gl")).text("");
				ps = $("#page_status", $("#gl"));
				if (T.err)
					ps.hide().removeClass("loading").text(Msg.errConnect).fadeIn("slow");
				else
					if (T.isOnLoading)
						ps.text(Msg.loading+T.galleryTitle+" ...").addClass("loading");
					else
						ps.removeClass("loading").text(T.galleryTitle);
			},
			putPics: function(data){
				var galArea = $(".gallery ul");
				galArea.empty();
				if (data.total){
					$.each(data.images, function(i,image){
						var thisbox = $('<li></li>')
								.attr("id", "pic_"+image.id)
								.html('<div><div class="ib loadimage">'+
									'<div class="highslide-caption">'+image.description+'<span>'+Msg.picId+image.id+'</span><b>'+image.picref+
									'</b></div></div><span>'+image.title+'<br/></span>'+
									'<div class="details">'+
									'<span class="'+(image.owner=="1" ? 'aminj" title="A.Jamshidi"': 'amira" title="A.H.Abolfath"')+'></span>'+
									(T.catID=="g7" ? '<a href="/gallery/'+(image.pic_b)+'" >Download</a>' : '<span class="picnum">'+Msg.picId+image.id+'</span>')+
									'</div>'+
									'</div>')
								.appendTo(galArea);
						var img = new Image();
						$(img).load(function () {
								$(this).hide();
								if (T.catID=="g7"){
								
								//$('<img src="/gallery/'+image.pic_s+
								$('<img src="/gallery/'+image.pic_s+
									'" alt="" title="'+Msg.enlargePic+'" />')
								.hide()
								.prependTo($(".ib", thisbox))
								.fadeIn("slow");
								}else{
								
									if (T.catID=="g6" || T.catID=="g9"){
										$('<a href="../play/?id='+(image.pic_b).replace(/torgheh_/,"").replace(/.swf/,"")+
											'" class="highslide" onclick="return hs.htmlExpand(this, { objectType: \'iframe\', width: 505, objectWidth: 505, objectHeight: 285} )"><img src="/gallery/'+image.pic_s+
											'" alt="" title="'+Msg.enlargePic+'" /></a>')
										.hide()
										.prependTo($(".ib", thisbox).removeClass("loadimage"))
										.fadeIn("slow");
									}else{
									
										$('<a href="/gallery/'+image.pic_b+
											'" class="highslide" onclick="return hs.expand(this)"><img src="/gallery/'+image.pic_s+
											'" alt="" title="'+Msg.enlargePic+'" /></a>')
										.hide()
										.prependTo($(".ib", thisbox).removeClass("loadimage"))
										.fadeIn("slow");									
									}
								}
						}).error(function () {
								$(thisbox).find(".ib").removeClass("loadimage");
								$(thisbox).find(".ib").html('<span style="padding-top: 50px">'+Msg.picNotFound+'</span>');
						}).attr('src', '/gallery/'+image.pic_s);
					});
					if (data.maxPage>1){
						$("#page_num").text(data.page);
						galArea.append(data.paging);
						$(".navimages a", galArea).click(function(){
							if (!T.isOnLoading){
								T.page = (parseInt($(this).attr("id").substr(6)));
								$.scrollTo($("#content"), 900, T.displayPics());
							}
							return false;
						});
					}
				}else{
					galArea.html('<div class="emptyimage">'+(T.catID==0 ? Msg.searchNotFound : Msg.galIsEmpty)+'</div>');
				}
				$(".gallery").fadeIn("slow", function(){
					$.gaTracker('UA-15587544-1');
				});
			},
			pageLoad: function(hash){
				if (hash){
					while (hash != (hash = hash.replace(/<[^<>]*>/g, "")));
					if (hash.length==1){
						T.displayBox(hash);
						return false;
					}
					T.displayBox();
					hash = hash.toString().replace('cid/', '');
				}
				if(hash && $("#catid_"+hash).length > 0) {
					var thisobj = $("#catid_"+hash);
					T.galleryTitle = thisobj.text().replace(/\([0-9]*\)/gi,"");
					if (T.galleryTitle=="")
						T.galleryTitle = thisobj.find("img").attr("alt");
					if (thisobj.attr("class")!="co")
						T.galleryTitle =  T.galleryTitle + Msg.picsStr;
					T.catID = hash;
					T.page = 1;
					if (T.catID.substr(0,1)=='g')
						T.displayPics();
					else
						$.scrollTo($("#content"), 900, T.displayPics());
				}else{
						T.displayBox("g");
				}
			},
			displayBox: function(b){
					$(".kwicks li a#active").attr("id", "");
					switch (b){
						case "g":
							if ($("#mainp").attr("class")==""){
								T.getHomeContent();
							}
							$("#bx_contact, #bx_bio").hide("slow");
							$("#gl").hide();
							$("#mainp").show("slow");
							break;
						case "a":
							$("#bx_bio").show("slow");
							$("#gl").fadeOut("slow");
							$("#bx_contact, #mainp").hide("slow");
							break;
						case "c":
							$("#bx_contact").show("slow");
							$("#gl").fadeOut("slow");
							$("#bx_bio, #mainp").hide("slow");
							break;
						default:
							b = "g";
							$("#bx_bio, #bx_contact").hide("slow");
							$("#mainp").fadeOut("slow");
							//$(".gallery").find("ul").empty().parent("#gl").show();
							$(".gallery").find("ul").empty();
							$("#gl").show();
							
					}
					$(".kwicks li#k_"+b+" a").attr("id", "active");
			},
			isOnLoading: false,
			catID: 0,
			galleryTitle: "",
			page: 1,
			keySearch: "",
			err: false
}

var C = {	// Torgheh Contact Object
	validateEmail: function(email) {
		var at = email.lastIndexOf("@");
		if (at < 1 || (at + 1) === email.length)
			return false;
		if (/(\.{2,})/.test(email))
			return false;
		var local = email.substring(0, at);
		var domain = email.substring(at + 1);
		if (local.length < 1 || local.length > 64 || domain.length < 4 || domain.length > 255)
			return false;
		// Make sure local and domain don't start with or end with a period
		if (/(^\.|\.$)/.test(local) || /(^\.|\.$)/.test(domain))
			return false;
		if (!/^"(.+)"$/.test(local)) {
			if (!/^[-a-zA-Z0-9!#$%*\/?|^{}`~&'+=_\.]*$/.test(local))
				return false;
		}
		if (!/^[-a-zA-Z0-9\.]*$/.test(domain) || domain.indexOf(".") === -1)
			return false;	
		return true;
	},
	SendMSG: function(btn){
		$(".contact span").hide().text("").removeClass("err");
		var name =	$('.contact #txt_name').val();
		var email =	$('.contact #txt_mail').val();
		var msg =	$('.contact #txt_msg').val();
		if (name=="")
			$(".contact span:eq(0)").text(Msg.ContactEmptyName).fadeIn("slow");
		if (email=="")
			$(".contact span:eq(1)").text(Msg.ContactEmptyEmail).fadeIn("slow");
		else
			if (!C.validateEmail(email))
				$(".contact span:eq(1)").text(Msg.ContactWrongEmail).addClass("err").fadeIn("slow");
		if (msg=="")
			$(".contact span:eq(2)").text(Msg.ContactEmptyMSG).fadeIn("slow");
		errMSG=$(".contact span");
		if (errMSG.eq(0).text()=="" && errMSG.eq(1).text()=="" && errMSG.eq(2).text()==""){
			$.ajax({
					url: ('../_contactmail.php'),
					type: 'POST',
					dataType: 'html',
					timeout: 300000,
					data:  {n: name, e: email, m: msg},
					cache: false,
					beforeSend: function(xhr) {
						$("form.contact .send").attr("disabled", true);
						$(".contact span:eq(3)").text(Msg.ContactSending).stop().css({opacity: 1}).show();
					},
					error: function(){
						$(".contact span:eq(3)").text(Msg.errConnect).addClass("err").show().fadeOut(5000);
					},
					success: function(txt){
						if (txt=="ok"){
							$(".contact span:eq(3)").hide().text(Msg.ContactSendingOk).show().fadeOut(5000);
							$('.contact #txt_name').val("");
							$('.contact #txt_mail').val("");
							$('.contact #txt_msg').val("");
						}else
							$(".contact span:eq(3)").text(Msg.ContactSendingErr).addClass("err").show().fadeOut(5000);
						$("form.contact .send").attr("disabled", false);
					}
			});
		}
		return false;
	}
};

var Msg = {
	loadingObj: "Loading gallery component, please wait...",
	loadingHome: "Loading data...",
	errConnect: "Error while connecting to server!",
	restartPage: "Please refresh page",
	loading: " loading ",
	searchResult: " Search result for ",
	searchHint: "Type here, then hit enter",
	picNotFound: "Image not found!",
	galIsEmpty: "Empty!",
	searchNotFound: "Sorry, your search did not match any image documents. ",
	enlargePic: "click for real image size",
	picId: "No#",
	picsStr: " gallery",
	pageStr: "page",
	ContactEmptyName: "Please enter your name.",
	ContactEmptyEmail: "Please enter your e-mail",
	ContactWrongEmail: "Invalid e-mail address",
	ContactEmptyMSG: "Please enter your comment",
	ContactSending: "Sending message, please wait...",
	ContactSendingErr: "Sorry, mail not delivered",
	ContactSendingOk: "Thanks, Successfully sent."
};

jQuery(document).ready(function(){
	$('#s').smartFocus(Msg.searchHint);
	$("#page_status, #page_status2").text(Msg.loadingObj);

	// load kwicks Menu:
	$('.kwicks').kwicks({
	   spacing : 5 ,
	   max : 200,
	   duration: 800,  
        	   easing: 'easeOutQuint'  
    	});
			
	// startDust
	var mysrc = '../Particles.swf';
	$('#wrapper h1')	
		.after('<div id="particles"></div><div id="particles_hover"></div>');
	$('#particles').flash({
	   src: mysrc,
	   width: 190,
	   height: 100 
	}, {
	   update: false
	});
	$('#particles_hover').flash({
	   src: mysrc,
	   width: 190,
	   height: 70 
	}, {
	   update: false
	});
	// starhover
	var my_kwickitem = $('.kwicks  li');
	var particles = $('#particles_hover');
	
	$(my_kwickitem).click(function(){
		$.historyLoad(this.id.substr(2));
		return false;
	});
	
	my_kwickitem.mouseover(function(){
		switch (this.id) {
		   case "k_g": var my_position = 80; break;
		   case "k_a": var my_position = 190; break;
		   case "k_c": var my_position = 300; break;
		   default: var my_position = 0; 
		}		  
		particles.css({left: my_position, display:'block'});
	});
	my_kwickitem.mouseout(function(){particles.css({display:'none'})});
	// my_slide
	$("div#slider1").codaSlider();
	//return false;
	// preload images...
	$.preloadImages("../images/indicator2.gif",
					"../images/pics_bg.gif",
					"../highslide/graphics/fullexpand.gif",
					"../highslide/graphics/loading.png",
					"../highslide/graphics/loading.gif"
	);
	// ready contact form
	$("form.contact").submit(C.SendMSG);
	// start display data
	var img = $("<img/>");
	$(img).load(function () {
		$.historyInit(T.pageLoad);
	}).error(function () {
		alert(Msg.errConnect+"، "+Msg.restartPage);
	}).attr("src", "../images/pics_bg.gif");
	// search
	$("#search_form input").bind("keydown", function(e){
        if (e.keyCode == 13) {
		var ks = ($(this).val()).toString();
		if (ks=="" || ks==T.keySearch) return false;
		T.keySearch = ks;
		T.displayBox();
		$.scrollTo($("#content"), 900, T.displayPics(0, Msg.searchResult+ks, 1));
		return false;
		}
	});
	// sideBars menus
	$("#sidebar a").click(function(){
		if ($(this).attr('class')==="link"){ 
			window.open(this.href);
			return false; 
		}
		if (!T.isOnLoading){
			$.historyLoad("cid/"+this.id.substr(6));
		}
		return false;
	});
});

var Browser = {
  Version: function() {
    var version = 999;
    if (navigator.appVersion.indexOf("MSIE") != -1)
      version = parseFloat(navigator.appVersion.split("MSIE")[1]);
    return version;
  }
}

	hs.graphicsDir = '/highslide/graphics/';
	hs.align = 'center';
	hs.transitions = ['expand', 'crossfade'];
	hs.outlineType = 'glossy-dark';
	hs.wrapperClassName = 'dark no-footer';
	
	hs.showCredits = false;
	hs.cacheAjax = true;
	
	hs.lang.loadingText = '';

	if (Browser.Version() < 7)
		hs.allowSizeReduction = false;
		
	hs.numberOfImagesToPreload = 0;
	hs.preserveContent = false;
	hs.objectLoadTime = 'after';

	
	if (hs.addSlideshow) hs.addSlideshow({
		//slideshowGroup: 'group1',
		interval: 5000,
		repeat: false,
		useControls: true,
		fixedControls: 'fit',
		overlayOptions: {
			opacity: .6,
			position: 'bottom center',
			hideOnMouseOut: true
		}
	});