BASE_URL = "http://avinvadas.com/";
//BASE_URL = "";

var iPre = 0;
$.arrPreload=[];
for(x=0; x<nProjectsCount; x++) $.arrPreload[iPre++]=BASE_URL+ "projects/"+ arrProjects[x].sFolderName +"/tn_off.jpg";
for(x=0; x<nProjectsCount; x++) $.arrPreload[iPre++]=BASE_URL+ "projects/"+ arrProjects[x].sFolderName +"/tn_on.jpg";
$.arrPreload[iPre++]=BASE_URL+ "images/icon_facebook_on.gif";
$.arrPreload[iPre++]=BASE_URL+ "images/icon_cv_on.gif";
$.arrPreload[iPre++]=BASE_URL+ "images/icon_contact_on.gif";
$.arrPreload[iPre++]=BASE_URL+ "images/icon_twitter_on.gif";
$.arrPreload[iPre++]=BASE_URL+ "images/icon_linkedin_on.gif";
$.arrPreload[iPre++]=BASE_URL+ "images/icon_like_off.gif";
$.arrPreload[iPre++]=BASE_URL+ "images/arrow_right_off.gif";
$.arrPreload[iPre++]=BASE_URL+ "images/arrow_left_off.gif";
for(x=0; x<nProjectsCount; x++) $.arrPreload[iPre++]=BASE_URL+ "projects/"+ arrProjects[x].sFolderName +"/screen01.jpg";

var iPreCount = 0;
$(document.createElement('img')).bind('load', function(){
		if($.arrPreload.length>0) this.src=$.arrPreload.shift();
		iPreCount++
		if(iPreCount==9) Projects.init(); // starting mosaoc after 9 images are loaded
		log(this.src)
}).trigger('load');

$(".clsHoverImg").live("mouseover mouseout", function(event){
	if(event.type == 'mouseover')
		$(this).attr("src",$(this).attr("src").replace("_off","_on"));
	else 
		$(this).attr("src",$(this).attr("src").replace("_on","_off"));
});




var Projects = {};

Projects.ScreensCount = 1;
Projects.CurrScreen = 1;

Projects.init = function (){
	var str = "",
		sScreens = "",
		nScreens = Math.ceil(nProjectsCount/9);

	$("#oLoadingGallery").hide();
	for(var i=0; i<nScreens; i++){
		str = "";
		for(var j=0; j<9; j++){
			if(arrProjects[i*9+j] && arrProjects[i*9+j].sFolderName){
				str += "<img src=\""+ BASE_URL +"projects/"+ arrProjects[i*9+j].sFolderName +"/tn_off.jpg\" alt=\""+ arrProjects[i*9+j].sName +"\"";
				str += "class=\"clsHoverImg clsImg"+ (j+1) +"\" style=\""+ (i==0 ? "display:none;" : "") +"\" onclick=\"Project.init("+ (i*9+j) +")\" />";
			}
		
		}
		sScreens += "<div class=\"clsScreen\">"+ str +"</div>";
	}

	$(".clsProjectsBox").find(".clsNext").css("display", (Projects.ScreensCount<=1 ? "none" : "block") );
	$("#oProjectsImagesBox").html("<div id=\"oProjectsScreens\" style=\"width:"+ (nScreens*932) +"px\">"+ sScreens +"</div>");
	Projects.ScreensCount = nScreens;
	Projects.show(true);
}

Projects.ScrollToScreen = function (nScreenIndex){
	if(nScreenIndex == 1){
		$("#oLogo").removeClass("clsLink").unbind("click");
	}
	else{
		$("#oLogo").addClass("clsLink").bind("click",function(){
			Projects.ScrollToScreen(1);
		});
	}
	
	$(".clsProjectsBox").find(".clsNext").css("display", (nScreenIndex+1 > Projects.ScreensCount ? "none" : "block") );
	$(".clsProjectsBox").find(".clsPrev").css("display", (nScreenIndex-1 < 1 ? "none" : "block") );

	Projects.CurrScreen = nScreenIndex;
	nScreenIndex-=1;
	var nNewPoz = nScreenIndex * -932;
	$("#oProjectsScreens").animate({left:nNewPoz},500);
}

Projects.show = function(bFirst){
	if(bFirst){
		$("#oProjectsImagesBox").show();
		Projects.FadeImagesIn();
	}
	else{
		$("#oProjectsScreens .clsScreen").eq(Projects.CurrScreen - 1).find("img").hide();
		$(".clsProjectBox").fadeOut(function(){
			$("#oProjectImagesVideo").hide().html("");
		});
		$(".clsProjectsBox").fadeIn(300,function(){
			Projects.FadeImagesIn();
		});
	}
}

Projects.FadeImagesIn = function (){
	var i = 0;
	$("#oProjectsScreens .clsScreen").eq(Projects.CurrScreen - 1).find("img").each(function(){
		$(this).delay((i++)*50).fadeIn(200);
	});
}




var Project = {};

Project.CurrProject = 0;
Project.CurrImage = 1;



Project.init = function(nProjectIndex){
	
	// preload this project's images
	$.arrProjPreload=[];
	for(x=1; x < arrProjects[nProjectIndex].nImages; x++) $.arrProjPreload[x-1]=BASE_URL+ "projects/"+ arrProjects[nProjectIndex].sFolderName +"/screen0"+ x +".jpg";
	$(document.createElement('img')).bind('load', function(){
		if($.arrProjPreload.length>0) this.src = $.arrProjPreload.shift();
		log(this.src)
	}).trigger('load');

	
	$("#oLogo").addClass("clsLink").bind("click",function(){
		Projects.CurrScreen = 1;
		Projects.show();
		Projects.ScrollToScreen(1);
		$("#oLogo").removeClass("clsLink").unbind("click");
	});

	//images
	var str = "";
	for(var i=1; i<=arrProjects[nProjectIndex].nImages; i++){
		str += "<img src=\""+ BASE_URL +"projects/"+ arrProjects[nProjectIndex].sFolderName +"/screen0"+ i +".jpg\" alt=\"\">";
	}
	$("#oProjectImagesBox").html("<div id=\"oProjectImagesScroll\" style=\"width:"+ (arrProjects[nProjectIndex].nImages*629) +"px\">"+ str +"</div>");

	// images bottom nav
	str = "";
	for(var i=0; i<arrProjects[nProjectIndex].nImages; i++){
		str += "<div "+ (i==0 ? "class=\"clsSelected\"" : "") +" onclick=\"Project.ScrollToImage("+ (i+1) +")\"></div>";
	}
	$("#oProjectImagesNav").html(str);

	// project desc
	str = "";
	if(arrProjects[nProjectIndex].sSiteURL) str = "<div class=\"clsProjectLink\"><a target=\"_blank\" href=\"http://"+ arrProjects[nProjectIndex].sSiteURL +"\">"+ arrProjects[nProjectIndex].sSiteURL +"</a></div>"
	if(arrProjects[nProjectIndex].sDesc) str += arrProjects[nProjectIndex].sDesc;
	$("#oProjectDesc").html(str);

	// init
	//$("#oProjectShowSlidesBtn").css("display",  arrProjects[nProjectIndex].nImages ? "inline" : "none");
	//$("#oProjectShowVideoBtn").css("display", arrProjects[nProjectIndex].sVideoURL ? "inline" : "none");
	//$("#oProjectShowBtnSep").css("display", arrProjects[nProjectIndex].nImages && arrProjects[nProjectIndex].sVideoURL ? "inline" : "none");

	if(arrProjects[nProjectIndex].nImages && arrProjects[nProjectIndex].sVideoURL ){
		$("#oProjectNav").html('<span class="U" id="oProjectShowVideoBtn" onclick="Project.ShowVideo(true)">play video</span>  |  <span class="U" id="oProjectShowSlidesBtn" onclick="Project.ShowSlides(true)">show slides</span>');
	}
	else{
		if(arrProjects[nProjectIndex].sVideoURL) $("#oProjectNav").html('<span style=\"cursor:default;\" id="oProjectShowVideoBtn">play video</span>');
		if(arrProjects[nProjectIndex].nImages) $("#oProjectNav").html('<span style=\"cursor:default;\" id="oProjectShowSlidesBtn">show slides</span>');
	}

	$(".clsProjectBox").find(".clsNext").css("display","none");
	$(".clsProjectBox").find(".clsPrev").css("display","none");
	Project.CurrProject = nProjectIndex;
	Project.CurrImage = 1;

	if(arrProjects[Project.CurrProject].sVideoURL){
		$("#oProjectImagesVideo").html("").html("<iframe src=\""+ arrProjects[Project.CurrProject].sVideoURL +"\" frameborder=\"\"></iframe>");
	}
	
	if( arrProjects[nProjectIndex].sDefaultScreen == "video" || !arrProjects[nProjectIndex].nImages )
		Project.ShowVideo(nProjectIndex, false);
	else
		Project.ShowSlides(nProjectIndex, false);

	$(".clsProjectsBox").fadeOut(600);
	$(".clsProjectBox").fadeIn(600);
}

Project.ShowSlides = function(bFade){
	$("#oProjectShowSlidesBtn").addClass("clsSelected");
	$("#oProjectShowVideoBtn").removeClass("clsSelected");

	if(bFade){
		$("#oProjectImagesVideo").fadeOut(function(){
			if(arrProjects[Project.CurrProject].sVideoURL){
				$("#oProjectImagesVideo").html("").html("<iframe src=\""+ arrProjects[Project.CurrProject].sVideoURL +"\" frameborder=\"\"></iframe>");
			}
		});
		if(Project.CurrImage < arrProjects[Project.CurrProject].nImages) $(".clsProjectBox").find(".clsNext").fadeIn();
		if(Project.CurrImage > 1) $(".clsProjectBox").find(".clsPrev").fadeIn();
		$("#oProjectImagesBox").fadeIn();
		$("#oProjectImagesNav").fadeIn();
	}
	else{
	   	$("#oProjectImagesVideo").hide();
		if(arrProjects[Project.CurrProject].sVideoURL){
			$("#oProjectImagesVideo").html("").html("<iframe src=\""+ arrProjects[Project.CurrProject].sVideoURL +"\" frameborder=\"\"></iframe>");
		}
		if(Project.CurrImage < arrProjects[Project.CurrProject].nImages) $(".clsProjectBox").find(".clsNext").show();
		if(Project.CurrImage > 1) $(".clsProjectBox").find(".clsPrev").show();
		$("#oProjectImagesBox").show();
		$("#oProjectDesc").show();
	}
	
	Project.CenterGallery();
}

Project.ScrollToImage = function (nImageIndex){
	$(".clsProjectBox").find(".clsNext").css("display", (nImageIndex+1 > arrProjects[Project.CurrProject].nImages ? "none" : "block") );
	$(".clsProjectBox").find(".clsPrev").css("display", (nImageIndex-1 < 1 ? "none" : "block") );
	Project.CurrImage = nImageIndex;
	nImageIndex-=1;
	$("#oProjectImagesNav").find("div").removeClass("clsSelected").eq(nImageIndex).addClass("clsSelected");
	var nNewPoz = nImageIndex * -629;
	$("#oProjectImagesScroll").animate({left:nNewPoz},500,'easeInOutQuad');
	Project.CenterGallery();
}

Project.ShowVideo = function(){
	$(".clsProjectBox").find(".clsNext").fadeOut();
	$(".clsProjectBox").find(".clsPrev").fadeOut();
	$("#oProjectImagesBox").fadeOut();
	$("#oProjectImagesNav").fadeOut();
	$("#oProjectShowVideoBtn").addClass("clsSelected");
	$("#oProjectShowSlidesBtn").removeClass("clsSelected");
	$("#oProjectImagesVideo").fadeIn();
	Project.CenterGallery();
}

Project.CenterGallery = function(){
	var nScrollTo = $(window).height();
	//nScrollTo = (nScrollTo<500 ? 151 : 0);
	nScrollTo = 150
	if($(document).scrollTop()>150){
		$("html:not(:animated),body:not(:animated)").animate({scrollTop:nScrollTo},400,'easeInOutQuad');
	}
	else{
		if($(window).height()<610){
			$("html:not(:animated),body:not(:animated)").animate({scrollTop:150},400,'easeInOutQuad');
		}
	}
}
	





function log(obj){
	//if(!$.browser.msie) console.log(obj)
}
 
var bCtrlPressed=false;
$(document).keyup(function(e){if(e.which==17)bCtrlPressed=false;}).keydown(function(e){if(e.which==17)bCtrlPressed=true;});

function fNav(sURL,bNewWin){
	if(bCtrlPressed||bNewWin)
		window.open(sURL);
	else
		location.href=sURL;
}

function fPageScrollEase(sObjName, nSpeed){
	/**
	 * jQuery.ScrollTo - Easy element scrolling using jQuery.
	 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
	 * Dual licensed under MIT and GPL.
	 * Date: 5/25/2009
	 * @author Ariel Flesler
	 * @version 1.4.2
	 *
	 * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
	 */
	;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);

	$obj=$("#"+ sObjName);
	if(!nSpeed) nSpeed = 800;
	$.scrollTo($obj,nSpeed,{ easing:'easeInOutQuad' });
}

function fPageScroll(sObjName, nSpeed){
	var ua = navigator.userAgent
	ua=ua.toLowerCase()
    if (/iphone/.test(ua)){
		var nScrollTo = $("#"+sObjName).position().top;
		$("html:not(:animated),body:not(:animated)").animate({scrollTop:nScrollTo},800);
	}
	else{
		fPageScrollEase(sObjName, nSpeed)
	}
}

function fGetQsParam(name){
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if(results == null)
		return results;
	else
		return results[1];
}

// THIS FUNCTION GENERATES FAKE <A HREF="MAILTO:..."> TAG
function fPrintEmailLink(sUserName, sDomain, linkText, linkTitle, cssClass, sSubject, sBody){

	var sQS=""
	if(!sUserName || !sDomain) return false;
	var sLinkText=linkText||null, sLinkTitle=linkTitle||null, sCssClass=cssClass||null;
	if(!sLinkText) sLinkText=sUserName +"@"+ sDomain;

	if(sSubject || sBody) sQS+="?";
	if(sSubject) sQS+="subject="+ sSubject;
	if(sSubject && sBody) sQS+="&";
	if(sBody) sQS+="body="+ sBody;

	if(sLinkTitle) sLinkTitle=" title='"+ sLinkTitle +"'"
	if(sCssClass) sCssClass=" class='"+ sCssClass +"'"

	document.write("<a "+ sLinkTitle +" "+ sCssClass +" href='m&#97;ilto:"+ sUserName +"&#64;"+ sDomain + sQS +"'>"+ sLinkText +"</a>")
}
