/**
 * @author Zane DeBusk
 */
var get_line;
var cur_thumb_page;
var cur_img;
var url = "portfolio_functions.cfm";
/*** Load global client list and populate/display initial slidetray items (triggered on load) ****/
function getClientList(line){
	var pars = "&getclients=1&line=" + line;
	var myAjax = new Ajax.Updater("slidetray", url, {
		parameters: pars,
		evalScripts: true,
		onComplete: function(){
			new Effect.Appear('slidetray_list', {
				duration: 0.5,
				afterFinish: function() {
					$('thumb-page-nav').setStyle({
						marginLeft: '-' + $('thumb-page-nav').getWidth()/2 + 'px'
					});
				}
			});
		}
	});
	cur_thumb_page = 1;
}
/*** Load first project in the activated line (triggered on line nav click) ***/
function getFirstProject(line){
	var pars = "&getprojects=1&action=getfirst&line=" + line;
	var myAjax = new Ajax.Updater("portfolio-main", url, {
		parameters: pars,
		onComplete: function(){
			//initializes search form event handlers
			new Event.observe('project-search', 'submit', function(event){
				Event.stop(event);
				var searchData = $('project-search').serialize();
				projectSearch(searchData);
			});
			new Effect.Appear('portfolio-content-wrapper', {
				duration: 0.25,
				afterFinish: function(){
					new Effect.Appear('image-wrapper', {
						duration: 0.25,
						afterFinish: function(){
							$('image-nav').setStyle({
								marginLeft: '-' + $('image-nav').getWidth()/2 + 'px'
							});
							new Effect.Appear('options-wrapper', {
								duration: 0.25
							});
						}
					});
				}
			});
			loadAccordion();
			cur_img = 1;
		}
	});
}
/*** Loads first project for client into view (triggered on client thumbnail click) ***/
function getClientProjects(cid, line){
	viewerFadeOut();
	var pars = "&getprojects=1&action=getclient&cid=" + cid + "&line=" + line;
	var myAjax = new Ajax.Updater("portfolio-main", url, {
		parameters: pars,
		onComplete: function(){
			viewerFadeIn();
			new Event.observe('project-search', 'submit', function(event){
				Event.stop(event);
				var searchData = $('project-search').serialize();
				projectSearch(searchData);
			});
			loadAccordion();
			cur_img = 1;
		}
	});
}
/*** Global project search (triggered by search form and global link filters in left column) ***/
function projectSearch(params){
	slideFadeout();
	var searchAjax = new Ajax.Updater("slidetray", url, {
		parameters: "&search=1&" + params,
		onComplete: slideFadein
	});
}
/*** Load details for specific project into viewer (triggered by clicking project thumbnail in tray or clicking item in 'related work' ***/
function getProjectDetails(pid){
	viewerFadeOut();
	var pars = "&getprojects=1&action=getdetails&pid=" + pid;
	var myAjax = new Ajax.Updater("portfolio-main", url, {
		parameters: pars,
		onComplete: function(){
			viewerFadeIn();
			new Event.observe('project-search', 'submit', function(event){
				Event.stop(event);
				var searchData = $('project-search').serialize();
				projectSearch(searchData);
			});
			loadAccordion();
			cur_img = 1;
		}
	});
}		
/*** Initialize right column accordion menu (triggered on load) ***/
function loadAccordion(){
	var detailsAccordion = new accordion('options-wrapper');
	detailsAccordion.activate($$('#options-wrapper .accordion_toggle')[0]);
}
/*** Jump to page of thumbnails in slidetray (triggered on pagination button click) ***/
function thumbPage(jumpto){
	var distance = Math.abs(jumpto - cur_thumb_page) * 784;
	if (jumpto > cur_thumb_page) {
		distance = -distance;
		new Effect.Move('slidetray_list', {
			x: distance,
			duration: 1.0,
			afterFinish: function(){
				cur_thumb_page = jumpto;
				$$('#thumb-page-nav li').each(function(s){
					s.removeClassName('active');
				});
				$('thumbpg' + jumpto).className = "active";
			}
		});
	}
	else 
		if (jumpto < cur_thumb_page) {
			new Effect.Move('slidetray_list', {
				x: distance,
				duration: 1.0,
				afterFinish: function(){
					cur_thumb_page = jumpto;
					$$('#thumb-page-nav li').each(function(s){
						s.removeClassName('active');
					});
					$('thumbpg' + jumpto).className = "active";
				}
			});
		}
}
/*** Fade viewer columns from 100 to 0 (triggered by updater functions) ***/
function viewerFadeOut(){
	new Effect.Opacity('portfolio-content-wrapper', {
		from: 1.0,
		to: 0,
		duration: .25,
		afterFinish: function(){
			new Effect.Opacity('image-wrapper', {
				from: 1.0,
				to: 0,
				duration: .25,
				afterFinish: function(){
					new Effect.Opacity('options-wrapper', {
						from: 1.0,
						to: 0,
						duration: .25
					});
				}
			});
		}
	});
}
/*** Fade view columns from 0 to 100 (triggered by updater functions) ***/
function viewerFadeIn(){
	new Effect.Appear('portfolio-content-wrapper', {
		duration: .25,
		afterFinish: function(){
			new Effect.Appear('image-wrapper', {
				duration: .25,
				afterFinish: function(){
					$('image-nav').setStyle({
						marginLeft: '-' + $('image-nav').getWidth()/2 + 'px'
					});
					new Effect.Appear('options-wrapper', {
						duration: .25
					});
				}
			});
		}
	});
}
/*** Fade slidetray element from 100 to 0 (triggered by updater functions) ***/
function slideFadeout(){
	new Effect.Opacity('slidetray_list', {
		from: 1.0,
		to: 0,
		duration: .5
	});
}
/*** Fade slidetray element from 0 to 100 (triggered by updater functions) ***/
function slideFadein(){
	new Effect.Appear('slidetray_list', {
		duration: .5,
		afterFinish: function() {
			$('thumb-page-nav').setStyle({
				marginLeft: '-' + $('thumb-page-nav').getWidth()/2 + 'px'
			});
		}
	});
}
/*** Jump to full image in project (triggered by full image pagination button click) ***/
function jumpToImage(jumpto){
	var distance = Math.abs(jumpto - cur_img) * 350;
	if (jumpto > cur_img) {
		distance = -distance;
		new Effect.Move('image-list', {
			x: distance,
			duration: .75,
			afterFinish: function(){
				cur_img = jumpto;
				$$('#image-nav li').each(function(s){
					s.removeClassName('active');
				});
				$('imagepg' + jumpto).className = "active";
			}
		});
	}
	else 
		if (jumpto < cur_img) {
			new Effect.Move('image-list', {
				x: distance,
				duration: .75,
				afterFinish: function(){
					cur_img = jumpto;
					$$('#image-nav li').each(function(s){
						s.removeClassName('active');
					});
					$('imagepg' + jumpto).className = "active";
				}
			});
		}
	/*
	 var url = "portfolio_functions.cfm";
	 var pars = "&getimage=1&id=" + img + "&project=" + project;
	 var getImage = new Ajax.Updater(
	 "image-container",
	 url,
	 {
	 parameters: pars,
	 onComplete: function() {
	 
	 }
	 });
	 */
}

function initializeLines() {
	var counter;
	var pars = "&search=1&init=1&line=1";
	
	var init1 = new Ajax.Request(url, {
		parameters: pars,
		onComplete: function(r) {
			counter = r.responseText;
			if (counter == 0) {
				$('print-nav').hide();
			}
		}
	});
	pars = "&search=1&init=1&line=2";
	var init2 = new Ajax.Request(url, {
		parameters: pars,
		onComplete: function(r) {
			counter = r.responseText;
			if (counter == 0) {
				$('promo-nav').hide();
			}
		}
	});
	
	pars = "&search=1&init=1&line=3";
	var init3 = new Ajax.Request(url, {
		parameters: pars,
		onComplete: function(r) {
			counter = r.responseText;
			if (counter == 0) {
				$('web-nav').hide();
			}
		}
	});
	
	pars = "&search=1&init=1&line=4";
	var init4 = new Ajax.Request(url, {
		parameters: pars,
		onComplete: function(r) {
			counter = r.responseText;
			if (counter == 0) {
				$('design-nav').hide();
			}
		}
	});
}

function swapLines(line) {
	var lname;
	switch(line) {
		case 1:
		lname = "print";
		break;
		
		case 2:
		lname = "promo";
		break;
		
		case 3:
		lname = "web";
		break;
		
		case 4:
		lname = "design";
		break;
	}
	
    new Effect.Opacity('portfolio-content-wrapper', {
        from: 1.0,
        to: 0,
        duration: .25,
        afterFinish: function(){
            new Effect.Opacity('image-wrapper', {
                from: 1.0,
                to: 0,
                duration: .25,
                afterFinish: function(){
                    new Effect.Opacity('options-wrapper', {
                        from: 1.0,
                        to: 0,
                        duration: .25,
                        afterFinish: function(){
                            getFirstProject(line);
                        }
                    });
                }
            });
        }
    });
	
    new Effect.Opacity('footer-bg', {
        from: 1.0,
        to: 0,
        duration: 1,
        afterFinish: function(){
            $('footer-bg').className = lname + '-footer';
            new Effect.Opacity('footer-bg', {
                from: 0,
                to: 1.0,
                duration: 1,
                afterFinish: function(){
                    $(lname + '-nav').className = 'active';
                }
            });
        }
    });
    getClientList(line);
    $$('#line-nav ul li').each(function(s){
        s.removeClassName('active');
    });
}

/*** Global page load event handler and page/event initialization ***/
Event.observe(window, 'load', function(){
	initializeLines();

	$$('.launch-print').each(function(element) {
        Event.observe(element, 'click', function(e){
        	Event.stop(e);
        	Lightbox.showBoxByID('portfolio-wrapper', 559);
            getClientList(1);
            getFirstProject(1);
        });
	});
/*	
	Event.observe('launch-promo', 'click', function() {
		getClientList(2);
		getFirstProject(2);
		$('footer-bg').className = 'promo-footer';
	});
**/

	$$('.launch-web').each(function(element) {
        Event.observe(element, 'click', function(e){
			Event.stop(e);
			Lightbox.showBoxByID('portfolio-wrapper', 559);
            getClientList(3);
            getFirstProject(3);
        });
	});
/*	
	Event.observe('launch-design', 'click', function() {
		getClientList(4);
		getFirstProject(4);
		$('footer-bg').className = 'design-footer';
	});
**/

	Event.observe('close-button', 'click', function() {
		Lightbox.hideBox();
	});
    // PRINT Line link
	/*Event.observe('print-link', 'click', function(){
		swapLines(1);
    });
    
    // PROMO Line link
    Event.observe('promo-link', 'click', function(){
		swapLines(2);
    });
    
    // WEB Line link
    Event.observe('web-link', 'click', function(){
        swapLines(3);
    });
    
    // DESIGN Line link
    Event.observe('design-link', 'click', function(){
        swapLines(4);
    });*/
    
    Event.observe('slide-left', 'click', function(event){
        if (cur_thumb_page > 1) {
			cur_thumb_page--;
            new Effect.Move('slidetray_list', {
                x: 784,
                duration: 1.0,
                afterFinish: function(){
                    $$('#thumb-page-nav li').each(function(s){
                        s.removeClassName('active');
                    });
                    $('thumbpg' + cur_thumb_page).className = "active";
					Event.observe(event);
                }
            });
        }
    });
    
    Event.observe('slide-right', 'click', function(){
		Event.stopObserving('slide-right', 'click');
        if (cur_thumb_page < $$('#thumb-page-nav li').size()) {
            new Effect.Move('slidetray_list', {
                x: -784,
                duration: 1.0,
                afterFinish: function(){
                    cur_thumb_page++;
                    $$('#thumb-page-nav li').each(function(s){
                        s.removeClassName('active');
                    });
                    $('thumbpg' + cur_thumb_page).className = "active";
                }
            });
        }
    });
});