var events = YAHOO.util.Event;
var $$ = YAHOO.util.Selector.query;
var fx = YAHOO.widget.Effects;
var $ = YAHOO.util.Dom;
var ani = YAHOO.util.Anim;
var oldState = '';
var state = '';
var newState = '';
var curSlides;
var curSlide = 0;

var albumAnim, photoAnim;
function flirInit() {
	
	FLIR.init( { path: 'cs-includes/facelift-1.2/' } );
}

function flirTitle() {
	FLIR.replace( 'h1#logo', new FLIRStyle({ cFont:'eurobold', output:'auto', inheritStyle: true }));
}

function flirMenu(){
	
	FLIR.replace( 'a.cs_site_menu_item', new FLIRStyle({ cFont:'euro', output:'auto', inheritStyle: true, realFontHeight:true }), new FLIRStyle({ cFont:'euro', output:'auto', cColor:'#666' }));
	FLIR.replace( 'a.cs_site_menu_active', new FLIRStyle({ cFont:'eurobold', output:'auto', inheritStyle: true, realFontHeight:true}));
	
}


var events = YAHOO.util.Event;

events.onDOMReady(function(){
						   		   
//	flirInit();
	initNavHistory();

});


var phoJax = {

	handleSuccess:function(o){

		if (photoAnim && photoAnim.isAnimated){
			photoAnim.stop();
			photoAnim = null;
		}
		//YAHOO.util.Dom.setStyle('photo', 'opacity', '0');
			photoAnim = new YAHOO.util.Anim('img_div', {opacity: {to:0}}, .5, YAHOO.util.Easing.easeOut);
			photoAnim.animate();
	photoAnim.onComplete.subscribe(function(){
		//if (document.getElementById('img_div')){
		document.getElementById('img_div').innerHTML = o.responseText;
		//fadeIn('photo');
		YAHOO.util.Event.addListener('photo', "load",  function (evt) {
				YAHOO.util.Dom.setStyle('cs_loader', 'visibility', 'hidden');
				YAHOO.util.Dom.setStyle('img_div', 'visibility', 'visible');
				if (photoAnim && photoAnim.isAnimated){
			photoAnim.stop();
			photoAnim = null;
		}
		
		photoAnim = new YAHOO.util.Anim('img_div', {opacity: {to:1}}, .7, YAHOO.util.Easing.easeOut);
		photoAnim.animate();
		});
		
		//alert(o.responseText);
		//}
		//alert(o.responseText);
		
		//alert(o.responseText);
		//document.getElementById('img_div').src = 'cs-content/sites/misha/images/user/' + o.responseText;
		//alert(document.getElementById('photo').src);
		
		//photo.animate();
		//var submenu = new YAHOO.util.Anim($$('.cs_list_menu'), {top: {to:2}}, 1.5, YAHOO.util.Easing.easeBothStrong);
		//var subcontent = new YAHOO.util.Anim('subcontent_div', {top: {to:4}}, 1.5, YAHOO.util.Easing.easeBothStrong);
		//var vScroller = new YAHOO.Scroller("subcontent_div",{type:"vertical",content:"subcontent"});
		//submenu.animate();
		
		//YAHOO.util.Dom.setStyle('img_div', 'opacity', '1');
		
		
		//if(document.getElementById('cs_list_menu')){
		// initSubNav();
		//}
		//		if(document.getElementById('checkout_iframe')){
		//			subcontent.onComplete.subscribe(function(){ showCheckout(); });
});

		//}
		//subcontent.animate();
		
	},

	handleFailure:function(o){
		//alert(o.responseText);
	},

	processResult:function(o){
	//alert(o.responseText);
	},

	startRequest:function(table, id, donly) {

		//currentPhoto = id;
		
		
		//photoAnim.onComplete.subscribe(function(){
			//YAHOO.util.Dom.setStyle('img_div', 'opacity', '0');
			
			YAHOO.util.Dom.setStyle('cs_loader', 'visibility', 'visible');
			
			
			YAHOO.util.Connect.asyncRequest('GET', 'item.php?table=cs_images&id=' + id + '&do=' + donly, picCallBack, "");
												  
			
			//return false;
		
		//});
		
	}

};


var picCallBack =
{
	success:phoJax.handleSuccess,
	failure:phoJax.handleFailure,
	scope: phoJax
};


var pageJax = {

	handleSuccess:function(o){
	
		//alert(o.responseText);
		if (document.getElementById('content')){
		document.getElementById('content').innerHTML = o.responseText;
		}
		//alert(o.responseText);
		YAHOO.util.Dom.setStyle('content', 'visibility', 'visible');
		if (document.getElementById('img_div')){
		initItemNav();
		initSlideNav();
		loadShow();
		
		var nextLink = document.getElementById('slide_next');
		nextLink.href = "?item=" + curSlides[1].id.replace('photo_link_', '');
		var prevLink = document.getElementById('slide_back');
		prevLink.href = "?item=" + curSlides[curSlides.length-1].id.replace('photo_link_', '');

		}
		
		if (albumAnim && albumAnim.isAnimated){
			albumAnim.stop();
			albumAnim = null;
		}
		
		
		albumAnim = new YAHOO.util.Anim('content', {opacity: {to:1}}, .5, YAHOO.util.Easing.easeOut);
		albumAnim.animate();
		
		//var submenu = new YAHOO.util.Anim($$('.cs_list_menu'), {top: {to:2}}, 1.5, YAHOO.util.Easing.easeBothStrong);
		//var subcontent = new YAHOO.util.Anim('subcontent_div', {top: {to:4}}, 1.5, YAHOO.util.Easing.easeBothStrong);
		//var vScroller = new YAHOO.Scroller("subcontent_div",{type:"vertical",content:"subcontent"});
		//submenu.animate();

		//if(document.getElementById('cs_list_menu')){
		// initSubNav();
		//}
		//		if(document.getElementById('checkout_iframe')){
		//			subcontent.onComplete.subscribe(function(){ showCheckout(); });


		//}
		//subcontent.animate();
	},

	handleFailure:function(o){

	},

	processResult:function(o){

	},

	startRequest:function(id, donly) {

		album = id;
		
		
		
		
		//albumAnim.onComplete.subscribe(function(){
			//YAHOO.util.Dom.setStyle('content', 'visibility', 'hidden');
			
			
			YAHOO.util.Connect.asyncRequest('GET', 'ajax.php?page=' + id, pageCallBack, "");
												  
			
			//return false;
		
		//});
		
		
		
												  
		
		
		
		}

};




var pageCallBack =
{
	success:pageJax.handleSuccess,
	failure:pageJax.handleFailure,
	scope: pageJax
};


var albumAnimate;
/*
var albumJax = {

	handleSuccess:function(o){
	
		//alert(o.responseText);
		if (document.getElementById('content')){
		document.getElementById('content').innerHTML = o.responseText;
		}
		
		YAHOO.util.Dom.setStyle('content', 'visibility', 'visible');
		albumAnimate = new YAHOO.util.Anim('content', {opacity: {to:1}}, .5, YAHOO.util.Easing.easeOut);
		if (albumAnimate.isAnimated) { albumAnimate.stop(); }
		initItemNav();
		
		albumAnimate.animate();

	},

	handleFailure:function(o){

	},

	processResult:function(o){

	},

	startRequest:function(table, id, donly) {

		album = id;

		//YAHOO.util.Dom.setStyle('photo', 'opacity', '0');
		//var content = new YAHOO.util.Anim('photo', {opacity: {to:0}}, .15, YAHOO.util.Easing.easeOut);
		//content.animate();
		//content.onComplete.subscribe(function(){
		YAHOO.util.Dom.setStyle('content', 'visibility', 'hidden');
		
	
		//alert(table);
		//alert('page.php?table=' + table + '&id=' + id + '&do=' + donly);
		
		YAHOO.util.Connect.asyncRequest('GET', 'item.php?table=' + table + '&album=' + id + '&do=false', albumCallBack, "");										  
		
		return false;
		
		}
	/// 	
	//}

};*/


/*var albumCallBack =
{
	success:albumJax.handleSuccess,
	failure:albumJax.handleFailure,
	scope: albumJax
};*/



function initNavHistory() {
	
	
	
	
	$bm = YAHOO.util.History.getBookmarkedState;
	$q = YAHOO.util.History.getQueryStringParameter;

    var today = new Date();
    var defPage = "Home";
    var bmPage = $bm("page");
	var qPage = $q("page");
	
    var iPage = bmPage || qPage || defPage;
	var qAlbum = $q("album");
    var bmAlbum = $bm("album");
	
    var iAlbum = bmAlbum || qAlbum || "";
	
	
	var bmItem = $bm("item");
	var qItem = $q("item");
	var defItem = "start";
	
	var iItem = bmItem || qItem || defItem;
	
	
    //var page;
   //var sub;

	if (newState == '')
	{
		
		//newPage = iPage;
		//newAlbum = iAlbum;
	
		//loadPage(nPage);
		
		//loadAlbum(nAlbum);
		
	}
	
	 YAHOO.util.History.register("page", iPage, function (page) {
    	
		
		loadPage(page);
		
		//YAHOO.util.History.navigate("album", '');
		
	});	


	
    YAHOO.util.History.register("item", iItem, function (pic) {
    	loadItem(pic);
		//curPage = YAHOO.util.History.getCurrentState("album");
		//YAHOO.util.History.navigate("album", '');
	
	});


	
    YAHOO.util.History.onReady(function () {
		
		
        
		initPageNav();
	   	initAlbumNav();
        curPage = YAHOO.util.History.getCurrentState("page");
        curItem = YAHOO.util.History.getCurrentState("item");
		
        
    });
	
    try {
		
        YAHOO.util.History.initialize("yui-history-field", "yui-history-iframe");
    } catch (e) {
		
       initPageNav();
		initAlbumNav();
    }

}

function initAlbumNav() {
		
		
		
		anchors = YAHOO.util.Selector.query('a.album');
		
		
		for (i = 0, len = anchors.length; i < len; i++) {
		
		
		
		anchor = anchors[i];
		YAHOO.util.Event.addListener(anchor, "click", function (evt) {
																
		
			href = this.getAttribute("href");
			//currentId = this.id.replace('cs_site_menu_item_', '');
			var newPage = YAHOO.util.History.getQueryStringParameter("page", href) || "home";
			//newAlbum = YAHOO.util.History.getQueryStringParameter("album", href) || "";
			//alert(newPage);
			//pageNav = {"page" : newPage}
			try {
				var curPage = YAHOO.util.History.getCurrentState("page");
				//currentAlbum = YAHOO.util.History.getCurrentState("album");
				if (newPage !== curPage) {
					
					
					YAHOO.util.History.navigate("page", newPage);
					
					
					//var prevLink = $$('a#slide_back');
					//prevLink.href="?item=" + curSlides[2];					
					//location.hash="#page="+newPage;
				}
				
			} catch (e) {
			
				loadPage(newPage);
	
			}
			YAHOO.util.Event.preventDefault(evt);
		});
	}
}
	
	
function initPageNav() {
		
		
		
		anchors = YAHOO.util.Selector.query('a.page');
		for (i = 0, len = anchors.length; i < len; i++) {
		
		
		
		anchor = anchors[i];
		YAHOO.util.Event.addListener(anchor, "click", function (evt) {
			href = this.getAttribute("href");
			//currentId = this.id.replace('cs_site_menu_item_', '');
			var newPage = YAHOO.util.History.getQueryStringParameter("page", href) || "home";
			//newAlbum = YAHOO.util.History.getQueryStringParameter("album", href) || "";
			//alert(newPage);
			//pageNav = {"page" : newPage}
			try {
				var curPage = YAHOO.util.History.getCurrentState("page");
				//currentAlbum = YAHOO.util.History.getCurrentState("album");
				if (newPage !== curPage) {
					
					
					YAHOO.util.History.navigate("page", newPage);
				//var nextLink = $$('a#slide_next');
					//nextLink.href="?item=" + curSlides(curSlide + 1);
					//location.hash="#page="+newPage;
				}
				
			} catch (e) {
			
				loadPage(newPage);
	
			}
			YAHOO.util.Event.preventDefault(evt);
		});
	}
}

function arrowNav() {
	
	arrows = $$('a.arrow_nav');
		for (i = 0, len = arrows.length; i < len; i++) {
		arrow = arrows[i];
		}
}


function trimNumber(s) {
  while (s.substr(0,1) == '0' && s.length>1) { s = s.substr(1,9999); }
  return s;
}
var curItem, newItem;
function initItemNav() {
		
		
		
		 photolinks = YAHOO.util.Selector.query('a.photo_link');
		//alert(photolinks.length);
		for (i = 0, len = photolinks.length; i < len; i++) {
		var photolink = photolinks[i];
		//alert(photolink.innerHTML);
		
		
		YAHOO.util.Event.addListener(photolink, "click", function (evt) {
													    
			href = this.getAttribute("href");
			
			q = trimNumber(this.innerHTML);
			//alert(q);
			curSlide = parseInt(q) - 1;
			//alert(curSlide);
			newItem = YAHOO.util.History.getQueryStringParameter("item", href) || "";
			//newAlbum = YAHOO.util.History.getQueryStringParameter("album", href) || "";
			//alert(newItem);
			//try {
				curItem = YAHOO.util.History.getCurrentState("item");
				//currentAlbum = YAHOO.util.History.getCurrentState("album");
				if (newItem !== curItem) {
					//alert('hello');
						n = curSlide + 1;
						p = curSlide - 1;
						if (curSlide == curSlides.length - 1) {
							n = 0;
							p = curSlide - 1;
						}
						if (curSlide == 0)
						{
							n = curSlide + 1;
							p = curSlides.length - 1;
						}
						//alert(curSlide + ' ' + s);
						nref = "?item=" + curSlides[n].id.replace('photo_link_', '');
						pref = "?item=" + curSlides[p].id.replace('photo_link_', '');
						//alert(nref);
						document.getElementById('slide_next').href= nref;
						document.getElementById('slide_back').href = pref;
						document.getElementById('slide_photo').href=nref;
						//alert('hello');
				
				
					
					YAHOO.util.History.navigate("item", newItem);
				}
				
			//} catch (e) {
			
			//	loadItem(newItem);
	
			//}
			YAHOO.util.Event.preventDefault(evt);
		});
	}
}

function initSlideNav() {
		
		
		
		var slides = YAHOO.util.Selector.query('a.slide_nav');
		for (i = 0, len = slides.length; i < len; i++) {
		
		var slidelink = slides[i];
		YAHOO.util.Event.addListener(slidelink, "click", function (evt) {
			var href = this.getAttribute("href");
			
			//alert(id);
			
			newItem = YAHOO.util.History.getQueryStringParameter("item", href) || "";
			//newAlbum = YAHOO.util.History.getQueryStringParameter("album", href) || "";
			//alert(newItem);
			try {
				curItem = YAHOO.util.History.getCurrentState("item");
				//currentAlbum = YAHOO.util.History.getCurrentState("album");
				
				if (newItem !== curItem) {
					
					var n;
					var p;
					if (this.id == 'slide_next' || this.id == 'slide_photo') {
						
						var y = curSlides.length - 2;
						var z = curSlides.length - 1;
						
						switch (curSlide) 
						{
							case y:															
							curSlide = curSlides.length - 1;
							n = 0;
							p = curSlides.length - 2;
							break;
							
							case z:
							curSlide = 0;
							n = 1;
							p = curSlides.length - 1;
							break;
							
							default:
							curSlide = curSlide + 1;
							n = curSlide + 1;
							p = curSlide - 1;
						
						
					
						
						
						}
							
							
							
							
							
							
						
					

					}
					else
					{
						switch (curSlide) 
						{
							case 1:															
							curSlide = 0;
							p = curSlides.length - 1;
							n = 1;
							break;
							
							case 0:
							curSlide = curSlides.length - 1;
							n = 0;
							p = curSlides.length - 2;
							break;
							
							default:
							curSlide = curSlide - 1;
							p = curSlide - 1;
							n = curSlide + 1;
						}
						
						
						
						
					}
					pref = "?item=" + curSlides[p].id.replace('photo_link_', '');
					nref = "?item=" + curSlides[n].id.replace('photo_link_', '');
					//alert(nref);
					document.getElementById('slide_next').href = nref;
					document.getElementById('slide_back').href= pref;
					document.getElementById('slide_photo').href=nref;
					YAHOO.util.History.navigate("item", newItem);

					//alert(this.href);
				}
				
			} catch (e) {
			
				loadItem(newItem);
	
			}
			YAHOO.util.Event.preventDefault(evt);
		});
	}
}

function loadAlbum(content) {
	
	//alert(content);
	if(content!=''){
	albumJax.startRequest('cs_albums', content, true);
	}
	
}


function loadPage(content){
		
		keepSliding = false;
		pageJax.startRequest(content, true);
	
	
}

function loadItem(content) {
	
		phoJax.startRequest('cs_images', content, false);
		var links = $$('a.photo_link');
		$.removeClass(links, "active");

		var link = $$('a#photo_link_'+content);
		$.addClass(link, "active");
}



function fadeIn(node) {
	//alert(node);	
	//var appear2 = new YAHOO.util.Anim('img_div', {opacity: {to:1}}, 1, YAHOO.util.Easing.easeOut);
	//if (appear.isAnimated()){
		//appear.stop();

		//appear2.animate();
	//}
	//else
	//	if (appear2.isAnimate()){appear2.stop()}
	
	//var appear = new YAHOO.util.Anim('img_div', {opacity: {to:1}}, 1, YAHOO.util.Easing.easeOut);
	//appear.animate();
	//}
	
	//var slideButton = $$('a#slide_pause');
	//if (slideButton.style.opacity = 0) {
	//var slide = new YAHOO.util.Anim('cs_slide_controls', {opacity: {to:1}}, 1, YAHOO.util.Easing.easeOut);
	//slide.animate();
	//}
	
}


function pauseShow() {
	
	alert('TODO: implement pause slide show');
	
}

function stopShow() {
	
	alert('TODO: implement stop slide show');
	
}

var keepSliding = false;
var isSliding = false;
var slideSpeed = 3000;
function slideShow() {
	
	if (isSliding) { // pause the show and return the label to say "slideshow"
		
		document.getElementById('slide_pause').innerHTML = 'slideshow';
		keepSliding = false;
	}
	else
	{
		document.getElementById('slide_pause').innerHTML = 'pause';
		keepSliding = true;
		playShow();	
	}
}

function playShow(){
	
	if (keepSliding){
		slideNext()
		setTimeout('playShow()', slideSpeed);
		isSliding = true;
	}
	else
	{
		isSliding = false;
	}
}



function loadShow() {
	//alert('hello');
	curSlides = $$('a.photo_link');
	//loadSlide(0);
	curSlide = 0;
	
}

function loadSlide(slide) {
	//alert('hello');
	var id = curSlides[slide].id.replace('photo_link_', '');
	loadItem(id);
	curSlide = slide;
	
	
}



function showSubMenu(id) {

	$.setStyle($$('.cs_list_menu'), 'display', 'none');
	$.setStyle('cs_list_menu_'+id, 'display', 'inline-block');
	$.setStyle($$('a.cat_nav'), 'color', '#aaa');
	$.setStyle('cs_site_menu_item_'+id, 'color', 'white');
}

function hideSubMenu(id) {
	
	$.setStyle('cs_list_menu_'+id, 'display', 'none');
	$.setStyle('cs_site_menu_item_'+id, 'color', '#aaa');

}

function hideSubMenus(){$.setStyle($$('div.cs_list_menu'), 'display', 'none');  $.setStyle($$('a.cat_nav'), 'color', '#aaa');}

function stripZeros(string){
	
	var value = string.replace(/^[0]+/g,"");
	
	return value;

}

var kl = new YAHOO.util.KeyListener(document, {keys:[37,39, 62232, 62234, 32]}, handleKeyPress);
kl.enable();


function slideBack() {
			var href = document.getElementById('slide_back').href;
			//alert(href);
			//alert(id);
			
			var newItem = YAHOO.util.History.getQueryStringParameter("item", href) || "";
			//newAlbum = YAHOO.util.History.getQueryStringParameter("album", href) || "";
			//alert(newItem);
		
				
				//currentAlbum = YAHOO.util.History.getCurrentState("album");
				
				
					
					var n;
					var p;
					
						switch (curSlide) 
						{
							case 1:															
							curSlide = 0;
							p = curSlides.length - 1;
							n = 1;
							break;
							
							case 0:
							curSlide = curSlides.length - 1;
							n = 0;
							p = curSlides.length - 2;
							break;
							
							default:
							curSlide = curSlide - 1;
							p = curSlide - 1;
							n = curSlide + 1;
						}
					

					
					
					pref = "?item=" + curSlides[p].id.replace('photo_link_', '');
					nref = "?item=" + curSlides[n].id.replace('photo_link_', '');
					//alert(nref);
					document.getElementById('slide_next').href = nref;
					document.getElementById('slide_back').href= pref;
					document.getElementById('slide_photo').href=nref;
					YAHOO.util.History.navigate("item", newItem);

					//alert(this.href);
				
		
			//YAHOO.util.Event.preventDefault(evt);
}

function slideNext(e) {
			var href = document.getElementById('slide_next').href
			//alert(href);
			//alert(id);
			
			var newItem = YAHOO.util.History.getQueryStringParameter("item", href) || "";
			//newAlbum = YAHOO.util.History.getQueryStringParameter("album", href) || "";
			//alert(newItem);
		
				
				//currentAlbum = YAHOO.util.History.getCurrentState("album");
				
				
					
						var y = curSlides.length - 2;
						var z = curSlides.length - 1;
					var n;
					var p;
					
						switch (curSlide) 
						{
							case y:															
							curSlide = curSlides.length - 1;
							n = 0;
							p = curSlides.length - 2;
							break;
							
							case z:
							curSlide = 0;
							n = 1;
							p = curSlides.length - 1;
							break;
							
							default:
							curSlide = curSlide + 1;
							n = curSlide + 1;
							p = curSlide - 1;
						
						
					
						
						
						}

					
					
					pref = "?item=" + curSlides[p].id.replace('photo_link_', '');
					nref = "?item=" + curSlides[n].id.replace('photo_link_', '');
					//alert(nref);
					document.getElementById('slide_next').href = nref;
					document.getElementById('slide_back').href= pref;
					document.getElementById('slide_photo').href = nref;
					YAHOO.util.History.navigate("item", newItem);

					//alert(this.href);
				
		
			//YAHOO.util.Event.preventDefault(evt);
}
function handleKeyPress(type, args, obj) {
		//alert(args[0]);
    switch (args[0]) {
        case 37:    //T
           slideBack();
		   
            break;
        case 39:    //M
            slideNext();
		  break;
		case 32:
			slideShow();
			break;
            break;
		case 62232:
			 slideBack();
            break;
		case 62234:
			slideNext();
            break;
        
    }
}
