jQuery.fn.fadeIn = function(speed, callback) { 
    return this.animate({opacity: 'show'}, speed, function() { 
        if (net_browser == 11)  
            this.style.removeAttribute('filter');  
        if (jQuery.isFunction(callback)) 
            callback();  
    }); 
}; 
 
jQuery.fn.fadeOut = function(speed, callback) { 
    return this.animate({opacity: 'hide'}, speed, function() { 
        if (net_browser == 11)  
            this.style.removeAttribute('filter');  
        if (jQuery.isFunction(callback)) 
            callback();  
    }); 
};

var currentpath = Array();
var patharray = Array();
var _arrow = 0;
var _arrowoffset = 0;
var title = document.title;
var goback = 0;
var isReady = true;

kzGlobal = {};

kzGlobal.setNavHovers = function() {
	$('#header .linklist .nav').hover(function(){
		if($(this).css('color') != 'rgb(179,179,179)' && $(this).css('color') != 'rgb(179, 179, 179)' && $(this).css('color') != '#b3b3b3') {
			$(this).attr('name','animating');
			$(this).attr('rev',9);
			$(this).parent().attr('class','color9');
		}
	},function(){
		if($(this).attr('name')){
			$(this).attr('name','');
			kzGlobal.colorMe ($(this));
		}
	});
}

kzGlobal.colorMe = function(element){
	currentColor = $(element).attr('rev');
	
	if (currentColor < 1 ) return;
	if ( $(element).attr('name') == 'animating') {
		$(element).parent().attr( 'class','color9');
		$(element).attr('rev',9);
	} else {
		$(element).parent().attr( 'class','color'+(currentColor - 1) );
		$(element).attr('rev',currentColor - 1);
	}
	window.setTimeout(function() { kzGlobal.colorMe( $(element) ); },050);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////


kzControl = {};
kzControl._xArgs = {};


kzControl.loadNow = function(path){
	$(kzControl._xArgs.returnDiv).html('<img src="images/ajax-loader.gif">').oneTime(1000,function(){
		$(window).scrollTo(0,0);
		isReady = false;		
		$(this).load(path+'.php',function(){
			isReady = true;
			$(this).hide().fadeIn();
			if(kzControl._xArgs.callBack){
				kzControl._xArgs.callBack();
				kzControl._xArgs.callBack = null;			
			}
			kzControl._xArgs.extras = "";
		});			
	});
}

kzControl.loadsubNow = function(){
	if($('#subcontainer').height()>100){
		var int1 = 10;		
		var int2 = 10;
	}
	else{
		var int1 = 500;		
		var int2 = 1000;		
	}
	
	//slidedown first
	$(window).scrollTo(0,int1,function(){
	isReady=false;
	var fullpath = "work/"+kzControl._xArgs.extras2+"/project.php";
	$('#subcontainer').show().animate({"height": $('div#controlcontainer').height()+200+"px"},int2,'',function(){
		$('#subControl').html('<img src="images/ajax-loader2.gif">').oneTime(int2,function(){			
			$(this).load(fullpath,function(){	
				isReady = true;
				$(this).hide().fadeIn();
				kzControl._xArgs.extras2 = "";
			});			
		});
	});
	});
}

kzControl.resetSub = function(){
	$('#subcontainer').hide().height(10);
	$('#subControl').empty();
	$('div#homeControl').hide().stopTime('controlled');
	$('#loadHelper').stopTime();
	$('img#img1').unbind().attr('src','').removeClass().addClass('shadowd').hide();
	$('img#img2').unbind().attr('src','').removeClass().addClass('empty shadowd').hide();	
}

/////////////////////////////////////////////////////////////////////////////////////////////////////


$('.ajaxlink').live("click", function(){
	if(isReady){ 
		$.address.value(this.rel); 
		return false;
	}
	else{
		return false;
	}
});


kzHome = {};
kzHome._xArgs = {};
kzHome._xArgs.counter = 1;
kzHome._xArgs.max = 8;
kzHome._xArgs.el;
kzHome._xArgs.elfull;
kzHome._xArgs.ready;

kzHome.initialize = function(){	
	kzGlobal.setNavHovers();
	//$('img#img1').unbind().attr('src','').removeClass().addClass('shadowd').hide();
	//$('img#img2').unbind().attr('src','').removeClass().addClass('empty shadowd').hide();
	
	kzHome._xArgs.counter = 1;
	kzHome._xArgs.max = 8;
	kzHome._xArgs.el = $('img.empty');
	kzHome._xArgs.elfull = $('img#img1');
	kzHome._xArgs.ready = false;
	$('div#homeControl').fadeIn();
	
	kzHome._xArgs.elfull.attr("src","images/home/mood1.jpg").load(function(){
		$(this).oneTime(250,function(){$(this).fadeIn('slow',kzHome.loadNextImg);})
	});		
}


kzHome.loadNextImg = function(){
	if(kzHome._xArgs.counter < kzHome._xArgs.max){
		kzHome._xArgs.counter++;
	}
	else{
		kzHome._xArgs.counter = 1;
	}
	kzHome._xArgs.el.attr("src","images/home/mood"+kzHome._xArgs.counter+".jpg").unbind().load(function(){
		kzHome._xArgs.el.addClass('waiting');
	});
	
	$('div#homeControl').everyTime(200, 'controlled', kzHome.checkLoad);
	$('#loadHelper').oneTime(6500,function(){
		kzHome._xArgs.ready = true;
	});	
}

kzHome.checkLoad = function(){	
	if(kzHome._xArgs.el.is('.waiting')){		
		if(kzHome._xArgs.ready == true){
			kzHome._xArgs.ready = false;	
			$('div#homeControl').stopTime('controlled');			
			kzHome._xArgs.elfull.unbind().fadeOut('slow',function(){								
				kzHome._xArgs.elfull.addClass('empty').attr('src','');
				kzHome._xArgs.el.removeClass('empty').removeClass('waiting').fadeIn('slow');
				kzHome._xArgs.elfull = kzHome._xArgs.el;
				kzHome._xArgs.el = $('img.empty');
				kzHome.loadNextImg();
				
			});
		}		
	}
}

$.address.change(function(event) {   
	patharray = event.path.split('/');
	$('#header .container').attr('class','container').addClass(patharray[1]);
	ajaxcontrolswitch(patharray[1]);		
});




function aboutComplete(){
	if(kzControl._xArgs.bypass){
		isReady = false;
		kzControl._xArgs.returnDiv = '#sectionControl';
		$(kzControl._xArgs.returnDiv).html('<img src="images/ajax-loader.gif">').load(kzControl._xArgs.extras + ".php",function(){
			isReady = true;
			$(this).hide().fadeIn();
		});	
	}
	$('ul#aboutmenu').attr('class','').addClass(kzControl._xArgs.extras);
}


function workComplete(){
	isReady = false;
	kzControl._xArgs.returnDiv = '#sectionControl';
	$(kzControl._xArgs.returnDiv).html('<img src="images/ajax-loader.gif">').load(kzControl._xArgs.extras + ".php",function(){
		isReady = true;
		$(this).hide().fadeIn();
		
		if(kzControl._xArgs.bypass){
			goback = 1;			
			kzControl.loadsubNow();
		}
	});	
}	
	


function ajaxcontrolswitch(switchon){
		_arrowoffset = 0;		

		switch(switchon){
			case '':
				goback = 0;			
				_arrow = 0;
				$.address.title("KZ Designs | Karina Zabihi Interior Design");
				$('#arrow').css('display','none');
				$('#control').empty();
				kzControl.resetSub();
				//kzControl._xArgs.returnDiv = '#control';
				//kzControl.loadNow('home');				
				//if(visited){
					kzHome.initialize();
				//}
			break;
			
			case 'about':
				goback = 0;
				$.address.title("KZ Designs | Karina Zabihi Interior Design | About");
				
				if (net_browser == 11){_arrowoffset = 600;}//pc internet explorer
				else if (net_browser == 5){_arrowoffset = 562;}//mac firefox
				else if (net_browser == 12){_arrowoffset = 600;}//pc firefox
				else if (net_browser == 4){_arrowoffset = 569;}//mac safari
				else{_arrowoffset = 562;}
				
				movearrow();
				kzControl.resetSub();
				if(currentpath[1]==patharray[1] && patharray[2]){
					kzControl._xArgs.returnDiv = '#sectionControl';
					kzControl._xArgs.callBack = aboutComplete;
					kzControl._xArgs.extras = patharray[2];
					kzControl._xArgs.bypass = false;
					kzControl.loadNow(patharray[2]);
					
					$('ul#aboutmenu').attr('class','').addClass(kzControl._xArgs.extras);
				}
				else if(patharray[2]){
					kzControl._xArgs.returnDiv = '#control';
					kzControl._xArgs.callBack = aboutComplete;
					kzControl._xArgs.extras = patharray[2];
					kzControl._xArgs.bypass = true;
					kzControl.loadNow('about');								
				}
				else{
					kzControl._xArgs.returnDiv = '#control';
					kzControl._xArgs.callBack = aboutComplete;
					kzControl._xArgs.extras = 'company';
					kzControl._xArgs.bypass = true;
					kzControl.loadNow('about');								
				}
			break;
			
			case 'interior':
				$.address.title("KZ Designs | Karina Zabihi Interior Design | Interior Design");

				if (net_browser == 11){_arrowoffset = 692;}//pc internet explorer
				else if (net_browser == 5){_arrowoffset = 660;}//mac firefox
				else if (net_browser == 12){_arrowoffset = 692;}//pc firefox
				else if (net_browser == 4){_arrowoffset = 667;}//mac safari
				else{_arrowoffset = 660;}
				
				movearrow();
				if(currentpath[1]==patharray[1] && patharray[2]){
					//internal sub clicking
					goback = 1;
					kzControl._xArgs.extras2 = 'interior/'+patharray[2];
					kzControl.loadsubNow();
				}
				else if(patharray[2]){
					//refreshing with 2 params
					goback = 1;
					kzControl._xArgs.returnDiv = '#control';
					kzControl._xArgs.callBack = workComplete;
					kzControl._xArgs.bypass = true;
					kzControl._xArgs.extras = 'interior';
					kzControl._xArgs.extras2 = 'interior/'+patharray[2];
					kzControl.loadNow('work');								
				}
				else{
					//first click or refresh
					if(goback && currentpath[1]==patharray[1]){
						$('#subcontainer').animate({"height":10},1000,'',function(){
							$(this).hide();
							$('#subControl').empty();
							goback = 0;
						});
					}
					else{
						kzControl.resetSub();
						kzControl._xArgs.returnDiv = '#control';
						kzControl._xArgs.callBack = workComplete;
						kzControl._xArgs.extras = 'interior';
						kzControl._xArgs.bypass = false;
						kzControl.loadNow('work');						
					}								
				}
			break;
			
			case 'products':
				$.address.title("KZ Designs | Karina Zabihi Interior Design | Products");

				if (net_browser == 11){_arrowoffset = 790;}//pc internet explorer
				else if (net_browser == 5){_arrowoffset = 773;}//mac firefox
				else if (net_browser == 12){_arrowoffset = 790;}//pc firefox
				else if (net_browser == 4){_arrowoffset = 777;}//mac safari
				else{_arrowoffset = 773;}

				movearrow();

				if(currentpath[1]==patharray[1] && patharray[2]){
					//internal sub clicking
					goback = 1;
					kzControl._xArgs.extras2 = 'products/'+patharray[2]+'/'+patharray[3];
					kzControl.loadsubNow();
				}
				else if(patharray[2]){
					//refreshing with 2 params
					goback = 1;
					kzControl._xArgs.returnDiv = '#control';
					kzControl._xArgs.callBack = workComplete;
					kzControl._xArgs.bypass = true;
					kzControl._xArgs.extras = 'products';
					kzControl._xArgs.extras2 = 'products/'+patharray[2]+'/'+patharray[3];
					kzControl.loadNow('work');								
				}
				else{
					//first click or refresh
					if(goback && currentpath[1]==patharray[1]){
						$('#subcontainer').animate({"height":10},1000,'',function(){
							$(this).hide();
							$('#subControl').empty();
							goback = 0;
						});
					}
					else{
						kzControl.resetSub();						
						kzControl._xArgs.returnDiv = '#control';
						kzControl._xArgs.callBack = workComplete;
						kzControl._xArgs.extras = 'products';
						kzControl._xArgs.bypass = false;
						kzControl.loadNow('work');						
					}								
				}
			break;
			
			case 'styling':
				$.address.title("KZ Designs | Karina Zabihi Interior Design | Styling");

				if (net_browser == 11){_arrowoffset = 872;}//pc internet explorer
				else if (net_browser == 5){_arrowoffset = 863;}//mac firefox
				else if (net_browser == 12){_arrowoffset = 872;}//pc firefox
				else if (net_browser == 4){_arrowoffset = 865;}//mac safari
				else{_arrowoffset = 863;}


				movearrow();

				if(currentpath[1]==patharray[1] && patharray[2]){
					//internal sub clicking
					goback = 1;
					kzControl._xArgs.extras2 = 'styling/'+patharray[2];
					kzControl.loadsubNow();
				}
				else if(patharray[2]){
					//refreshing with 2 params
					goback = 1;
					kzControl._xArgs.returnDiv = '#control';
					kzControl._xArgs.callBack = workComplete;
					kzControl._xArgs.bypass = true;
					kzControl._xArgs.extras = 'styling';
					kzControl._xArgs.extras2 = 'styling/'+patharray[2];
					kzControl.loadNow('work');								
				}
				else{
					//first click or refresh
					if(goback && currentpath[1]==patharray[1]){
						$('#subcontainer').animate({"height":10},1000,'',function(){
							$(this).hide();
							$('#subControl').empty();
							goback = 0;
						});
					}
					else{
						kzControl.resetSub();
						kzControl._xArgs.returnDiv = '#control';
						kzControl._xArgs.callBack = workComplete;
						kzControl._xArgs.extras = 'styling';
						kzControl._xArgs.bypass = false;
						kzControl.loadNow('work');						
					}								
				}
			break;
			
			case 'contact':
				$.address.title("KZ Designs | Karina Zabihi Interior Design | Contact Us");
				goback = 0;
				
				if (net_browser == 11){_arrowoffset = 945;}//pc internet explorer
				else if (net_browser == 5){_arrowoffset = 941;}//mac firefox
				else if (net_browser == 12){_arrowoffset = 945;}//pc firefox
				else if (net_browser == 4){_arrowoffset = 941;}//mac safari
				else{_arrowoffset = 941;}
				
				movearrow();
				kzControl.resetSub();
				kzControl._xArgs.returnDiv = '#control';
				kzControl.loadNow('contact');			
			break;
			
			default:
				window.location = "/";
				isReady=true;
			break;
		}
		currentpath = patharray;
}

function movearrow(){
	movetime = 300;
	
	if(_arrow){
		$('#arrow').animate({ "left": _arrowoffset+"px" }, movetime);
		return movetime;
	}
	else{
		_arrow =1;
		$('#arrow').css('left',_arrowoffset+'px');
		$('#arrow').css('display','block');
		return false;
	}
}


