
	var intid, intc=0, intid2, intc2=0;
	
	var pagewidth=HeaderWidth;
	var headerprop=HeaderWidth/HeaderHeight;
	var pageprop = HeaderWidth/700;
	var Header = HeaderHeight/700;
	var scrollto,homepage;
	
	var nextbtnwidth = 200;
	var curpage=1,scrolling=true, pagecount=0;
	var $navlinks = [];
	var $subnavs = [];
	var navtops = [];
	var halfheight=HeaderHeight;
	var prevwinheight = 0;

	var $span,$a,$nextbtn,$nav,$navmeasure,$measurer,$aheader,$arrow,$contactform,$nextlabel,contitle,$blogpage,pagesloaded=0,$logo;
	var navset = false;
	var screenwidth = pagecount*1200+200;
	var inputdefaults=[];
	var halfnav;
	
	var Cufon1w = Cufon1.substr(Cufon1.lastIndexOf(" "));
	Cufon1 = Cufon1.substr(0,Cufon1.lastIndexOf(" "));
	var Cufon2w = Cufon2.substr(Cufon2.lastIndexOf(" "));
	Cufon2 = Cufon2.substr(0,Cufon2.lastIndexOf(" "));
	
	var $j = jQuery.noConflict();
	
//ON DOCUMENT READY

$j(document).ready(function($){
	//get important elements in vars
	$nextbtn = $j('.NextPageBtn');
	$nav = $j('.Navigation');
	$navmeasure = $j('#Navigation');
	$measurer = $j('#measurer');
	$aheader = $j(".Header:first");
	//calc a var used for proper centering of text in Navigation
	var $fnav = $j(".Navigation a:first");
	var tmpvr = Number($fnav.css('margin-left').replace(/px/,''));if($fnav.css('margin-left')=='auto')tmpvr=10;
	halfnav = $fnav.width()/2 - tmpvr+10-Number($fnav.css('padding-left').replace(/px/,''));
	
	
	if(logofloat=="Top")$logo=$j('.TopLogo');
	
	//safari fix
	if(jQuery.browser.safari){
		$scr = $j('.Screen');
		$scr.css('margin-left',-$scr.offset().left).css('margin-top',-$scr.offset().top);
	}
	if(jQuery.browser.msie){
		if(jQuery.browser.version.charAt(0)=="7"){AnimateNavArrow=false;CufonTypography=false; ImageHoversPlugin=false;}
		else if(jQuery.browser.version.charAt(0)=="8"){AnimateNavArrow=false;ImageHoversPlugin=false}
	}
	
	//trigger some first time mods for Navigation >
	//set up sub navigations
	$j('.SubNavigation').css('display','none').css('position','absolute').css('z-index',2).after('<div class="SubNavSpacer">&nbsp;</div>');
	//add one time cufons
	if(CufonTypography){
		Cufon.replace('.SubNavigation a', {textShadow: CufonShadow, fontFamily: Cufon1, fontWeight: Cufon1w});
		Cufon.replace('#measurer', {textShadow: CufonShadow, fontFamily: Cufon1, fontWeight: Cufon1w});
	}
	//attach Navigation Arrow div for animation
	if(AnimateNavArrow){ $nav.append('<div class="NavigationArrow">&nbsp;</div>');$arrow = $j('.NavigationArrow');}
	//set up main navigation buttons
	$j(".Navigation a").each(function(){
		if($j(this).parent().attr('class').indexOf("SubNavigation")==-1){
		navset = false;
		contitle = $j(this).text().replace(/ /g,"-");
		if(jQuery.browser.msie)$j(this).css('visibility','hidden');
		else $j(this).css('opacity',0);
		$j(this).attr('id','nav'+contitle).css('cursor','default').click(function(e){e.preventDefault()});
		
		
		$navlinks.push($j(this));//array with links to nav buttons
		if($j(this).attr('rel')!="links"){
			pagecount++;
			navtops[pagecount] = $j(this).position().top;//save nav buttons top positions
		}
		}
		else {
			//if it's a subnav <a
			if(navset==false){
				$subnavs[$navlinks.length-1]=$j(this).parent();//set up SubNavigation parent
				navset=true;
			}
		}
	});
	if(AnimateNavArrow)$arrow.css('top',navtops[1]);
	
	
	//set up links & style to chosen nav button (the first one)
	$fnav.each(function(){
		$a = $j(this);
		$span = $j('span',$a);
		scrollto = $a.text();
		homepage=scrollto;
		if(AnimateNavArrow)$a.attr('class','Active');
		else $a.attr('class','StaticActive');
		$span.css('margin-left',(halfnav-$measurer.width()/2)+'px');
		if(jQuery.browser.msie)$j(this).css('visibility','visible');
		else $j(this).css('opacity','');
		
		if(CufonTypography)Cufon.replace('#nav'+$j(this).text().replace(/ /g,"-"),{textShadow: CufonShadow, fontFamily: Cufon1, fontWeight: Cufon1w});
		
		if($subnavs[0])DropDownSub();
		$a.unbind('click').click(ReturnMainContent);
		$j(this).css('cursor','pointer').click(NavClick);
	});
	//append "loading..." after first navigation link
	$nav.append('<div id="navload" style="color:'+$j('.Navigation a:not([class*="Active"]):first').css('color')+'; font-size:18px; position:absolute; z-index:4; top:'+($fnav.position().top+$fnav.height()+20)+'px; left:40px" >Loading...</div>');
	if(CufonTypography)Cufon.replace('#navload', {fontFamily: Cufon1, fontWeight: Cufon1w, textShadow: CufonShadow});
	
	
	
	//SET NEXT PAGE BUTTON for the first time (INVISIBLE BUTTON ON THE RIGHT)
	
	$nextlabel = $j('#NextLabel');
	
	$j('.NextPageBtn').each(function(){
		
		$j(this).css('opacity',0).css('display','block').removeAttr('href').css('cursor','pointer').css('width',$j(window).width()-pagewidth);
		nextbtnwidth = $j(window).width()-pagewidth;
	
		$j(this).click(function(){
			$j(this).css('opacity',0)
			scrolling=false;
			curpage++;
			GoToPage();
		});
		$j(this).hover(function(e){
			$j(this).css('opacity',0.3);
			$nextlabel.css('top',e.pageY-$nextlabel.height()/2-$j(document).scroll().scrollTop()).css('left',e.pageX-$nextlabel.width()-$j(document).scroll().scrollLeft());
			$nextlabel.css('display','block');
			$j(this).bind('mousemove',StickLabel);
		},function(){
			$j(this).css("opacity",0);
			$nextlabel.css('display','none');
			$j(this).unbind('mousemove');
		});
	});
	
	Float();//fix page size
	//trigger cufons for the first page
	initCufons($navlinks[0].attr('rel'));
	//START LOADING THE REST PAGES
	LoadRestPages();
	
});

function LoadRestPages(){
	var $rest = $j('<div></div>');
	//Load the page
	$rest.load('?rest='+homeoffset+' #SubContent',function(){
	//append the loaded page
	$j('.Screen').append($j('#SubContent',$rest).html());
	//activate the navigation buttons
	for(var i=1;i<$navlinks.length;i++){
	if(jQuery.browser.msie)$navlinks[i].css('visibility','visible');
	else $navlinks[i].delay((i-1)*100).animate({opacity:1},300);
	
	if($navlinks[i].attr('rel')=="links")$navlinks[i].css('cursor','pointer').click(NavLinksClick);
	else $navlinks[i].css('cursor','pointer').click(NavClick);
	}
	Float();
	init();
	});
}


function init(){
	$j('.Navigation a').each(function(){
		if($j(this)!==$navlinks[0]&&$j(this).parent().attr('class')!="SubNavigation"){
		contitle = $j(this).text().replace(/ /g,"-");
		//add cufon to each nav button separately
		if(CufonTypography)Cufon.replace('#nav'+contitle, {textShadow: CufonShadow, fontFamily: Cufon1, fontWeight: Cufon1w});
		}
	});
	//remove "loading..." from navigation
	$j('#navload',$nav).remove();
	//set the website according to user's browser resolution
	Float(); 
	//fix wp hacked <p>s
	fixWPinsolentPtags(".Screen");
	//trigget Cufons plugin for the rest pages
	initCufons('div[class=Page]:not([id='+$navlinks[0].attr('rel').substr(1)+'])');
	//trigger HoverImages plugin
	initHoverImages('.Screen');
	initHoverImages('.Footer');
	//trigger ZoomImages plugin
	initZoomImages('.Screen');
	//check url and navigate to proper part of site. Load external pages if needed.
	HandleDeepLink();
	//trigger Loading Images plugin for all images.
	//check if a subpage is being loaded (due to deep link) and exclude it from the plugin
	if(subanchor!=""&&subanchor!=undefined)setTimeout(function(){initLoadingImages('div[class*="Page"]:not([id="'+mainanchor+'"]) img');},100);
	else setTimeout(function(){initLoadingImages('img');},100);
	//listen for hash change to capture browser BACK button pressed
	$j(window).bind('hashchange',HashChange);
	//listen for window resize
	$j(window).resize(Float);
	//listen for scrolling
	$j(window).scroll(Scroll);
	//bind click listener for subnavigations
	$j('div[class*=SubNavigation]:not([class*=links]) a').click(ClickSubNav);
	//trigger Inner Links plugin for the whole website
	initReplaceLinks(".Screen");
	
	//Contact Form trigger
	
	$contactform = $j('#contactform .ContactForm');
	if($contactform.length>0){
	$j('#contactform').resetForm().ajaxForm({beforeSubmit:CheckContactForm, success:SentContactForm}).find('input:not([type="submit"]),textarea').each(function(){
		inputdefaults[$j(this).attr('name')]=$j(this).attr('value');
		$j(this).focusin(function(){if( $j(this).attr('value')==inputdefaults[$j(this).attr('name')] )$j(this).attr('value','');});
		$j(this).focusout(function(){if( $j(this).attr('value')=="" )$j(this).attr('value',inputdefaults[$j(this).attr('name')]);});
	});
	}
	//trigger plugin scripts in from wp_footer() now
	var $footer = $j('.Footer');
	for(var i in plugscripts){
		$footer.append('<script type="text/javascript" src="'+plugscripts[i]+'"></script>');
	}
}

function fixWPinsolentPtags(selector){
	$j(selector+" .Showcase1 p").each(function(){
		$j(this).before($j(this).html()).remove();
	});
}


// CONTACT FORM HANDLER 	[[[START>>>
function CheckContactForm(){
		var submit=true;
			$j('input:not([type="submit"]),textarea',$contactform).each(function(){
				if(inputdefaults[$j(this).attr('name')].indexOf("required")!=-1||inputdefaults[$j(this).attr('name')].indexOf("*")!=-1){
					//!change class
					if($j(this).attr('value')==""||$j(this).attr('value')==inputdefaults[$j(this).attr('name')]){
						submit=false;
						
						if($j(this).is('input'))$j(this).attr('class','InputError');
						else if($j(this).is('textarea'))$j(this).attr('class','TextareaError');
					} else {
						if($j(this).is('input'))$j(this).removeClass('InputError');
						else if($j(this).is('textarea'))$j(this).removeClass('TextareaError');
						if($j(this).attr('name')=="Email")if(ValidEmail($j(this).attr('value'))==false){submit=false;$j(this).attr('class','InputError')}
					}
				}
			});
			if(submit){
				$contactform.before('<div class="ImageLoader" style="width:'+$contactform.width()+'px; height:'+$contactform.height()+'px; top:'+$contactform.position().top+'px; left:'+$contactform.position().left+'px; padding:0; background:url(img/Loading.gif) no-repeat center #fff"></div>')
			}
			return submit;
	}
	function ValidEmail(emailstr){
		var res=true;
		emailok=false;
		if(emailstr.length>7){
			var monkey=emailstr.indexOf("@",0);
			if(monkey<2)res=false;
		else {
			var dot=emailstr.lastIndexOf(".");
			if(dot>monkey+2){
				if(emailstr.length<dot+3)res=false;
			}else res=false;
		}
		} else res=false;
		return res;
	}
	
	function SentContactForm(){
		//show notification
		$contactform.prev().html('<div style="margin-top:'+($contactform.height()/2-40)+'px; width:100%; text-align:center"><h5>Thank you.<br /><br /> Your message has been sent!</h5></div>').delay(2000).animate({opacity:0},500,function(){$j(this).remove()});
		
		if(CufonTypography)Cufon.replace($contactform.prev(), {fontFamily: Cufon2, fontWeight: Cufon2w});
	}

//  <<<END]]] 	CONTACT FORM HANDLER



//DEEP LINKS HANDLER    [[[START>>>
	
var subanchor,url,urldiv;
var mainurl;//for wordpress link hack
var mainanchor,urlfirst=true;
var firstview=true;
		
function HandleDeepLink(){
	url = String(window.location);
	urldiv=url.indexOf('#');
	mainurl = url;
	if(firstview){
		var urlvars = getUrlVars();
		//if there is a redirect from inner page
		if(urlvars['getpage']!=undefined){
			//detect whether the page is a subpage or blog query
			urlvars['getpage']=unescape(decodeURIComponent(urlvars['getpage']));
			var slash = urlvars['getpage'].indexOf("/");
			var isblog=true;
			if(slash==-1)slash=urlvars['getpage'].length;
			var urlpage = urlvars['getpage'].substr(0,slash);
			for(var i in $navlinks){
				if($navlinks[i].text().toLowerCase()==urlpage.toLowerCase()){isblog=false;break;}
			}
			if(isblog==false){
				url = url.substr(0,url.indexOf("#"))+$navlinks[i].attr("rel");
				urldiv = url.indexOf("#");
				slash = urlvars['getpage'].indexOf("/");
				if(slash!=-1&&slash!=urlvars['getpage'].length-1){
					url+=urlvars['getpage'].substr(slash);
				}
			} else {
				$blogpage = $j('.BlogContent');
				while($blogpage.attr('class')!="Page")$blogpage=$blogpage.parent();
				if(urlvars['getpage'].charAt[0]!="/")urlvars['getpage']="/"+urlvars['getpage'];
				url = url.substr(0,url.indexOf("?"))+$blogpage.attr('id')+urlvars['getpage'];
				urldiv = url.indexOf("#");
			}
		}
	}
	if(urldiv!=-1||firstview==false){//if "#" is present
	
	//fix going back to home page
	if(urldiv==-1){skiphash=true;window.location+="#"+homepage;url = String(window.location);urldiv=url.indexOf('#');mainurl = url;}
	//continue...
	mainurl = url.substr(0,urldiv);
	scrolling = false;//prevent scrolling event handler
	mainanchor = url.substr(urldiv+1);//get main page to be navigated to
	subanchor="";
	if(url.indexOf("/",urldiv+1)!=-1){//get subpage to be navigated to (if there is one)
		mainanchor = mainanchor.substr(0,mainanchor.indexOf("/"));
		subanchor = url.substr(url.indexOf("/",urldiv+1)+1);
	}
	
	//override browser's default anchor handling
	setTimeout(function(){$j(window).scrollTo("#"+mainanchor,0);},100);
	setTimeout(function(){
		//detect nav button
		var urlpage = "#"+mainanchor.toUpperCase();
		
		var i=0; while($navlinks[i].attr('rel').toUpperCase()!=urlpage){i++;if($navlinks[i]==undefined)break;}
		if($navlinks[i]!=undefined){
		//set up nav. 
		curpage=i+1;
		scrolling=true;
		Scroll();
		//dont replay nav animation if its the first page
		if(mainanchor==homepage&&urlfirst==false)GoToPage(true);
		else if(mainanchor!=homepage)GoToPage(true);
		
		urlfirst=false;
		var contentstr = mainanchor+"Content";
		
		if(subanchor!=""){ // if there is an anchor to a sub page (external page)
			$contentlink = $j("#"+mainanchor+" .Content");
			if(jQuery.browser.msie!=true)$contentlink.css('opacity',0);
			if(subanchor.indexOf("%23")!=-1)subanchor=subanchor.replace("%23","#");//Safari url fix
			setTimeout(function(){ShowSubPage($contentlink,mainanchor,subanchor,true);},1000);
		} else if(subopened[contentstr])ReturnMainContent();
		
		}}
	,300);
	} 
	if(firstview){firstview=false; $j(window).trigger('hashchange');}
}


var skiphash = false;
	
function HashChange(){
	if(skiphash==false){
		HandleDeepLink();
			
	} else skiphash=false;
}
// <<<END]]] 	DEEP LINK HANDLER




// FLOAT WEBSITE ON RESIZE 		[[[START>>>
function Float(){
		//set up website according to user's browser resolution
		if($j(window).height()<750||prevwinheight<750||$j(window).width()<pagewidth){
			var winheight = $j(window).height();
			if(winheight>750)winheight=750;
			halfheight = Math.round((winheight-50)*Header);
			if(halfheight*headerprop<970)halfheight=970/headerprop;//pages float between 970~[original width]
			if(Headers==false){//if no headers
				pagewidth = winheight*pageprop;
				if(pagewidth<970)pagewidth=970;
				else if(pagewidth>HeaderWidth)pagewidth=HeaderWidth;
			}
			else pagewidth = Math.round(halfheight*headerprop);
			if(pagewidth>$j(window).width()-50){
				//fix for square displays (1024x~1000)
				pagewidth = $j(window).width()-50;
				if(pagewidth<970)pagewidth=970;
				halfheight = pagewidth/headerprop;
			}
			prevwinheight = $j(window).height();
		}
		
		screenwidth=0;
		$j(".Page").each(function(){
			$j(this).width(pagewidth);
			screenwidth+=pagewidth;//calculate screenwidth
		});
		if(Headers){
		$j(".Header").each(function(){
			$j(this).height(halfheight);
		});}
		$j(".Navigation").css('top',halfheight);
		//set up screen width
		if(pagewidth<$j(window).width())
		$j('.Screen').css('width',screenwidth+($j(window).width()-pagewidth));
		else $j('.Screen').css('width',screenwidth);
		//calculate nav menu height
		$nav.height($j(window).height()-halfheight-50);
		//fix current position on website
		$j(document).scrollTo('#'+scrollto,0)
		//set up width of the invisible "nextbtn" on the right
		nextbtnwidth = $j(window).width()-pagewidth;
		$nextbtn.width(nextbtnwidth);
}
// <<<END]]]	 FLOAT WEBSITE ON RESIZE



// SCROLL HANDLER 	[[[START>>>
function Scroll(){
		if(scrolling){//if manually scrolling
		
		//Change nav page
		if(($nav.position().left+5)/pagewidth > curpage) {//if next page
			curpage++;
			GoToPage(true);
		
		}
		else if(($nav.position().left+pagewidth/2)/pagewidth < curpage-1){//if prev page
			curpage--;
			GoToPage(true);
		}
		//fix right button for next page
		SetRightBtnWidth();
		//calculate nav menu top position & height
		var navheight = $j('.Footer').position().top-$j(window).height()+($j(window).height()-halfheight);
		var navtop = halfheight-$j(document).scroll().scrollTop();
		var minustop = $j(window).height()-80-$navmeasure.height();
		if(minustop>0)minustop=0;
		if(navtop<minustop)navtop=minustop;
		$nav.css('height',navheight).css('top',navtop);
		if(logofloat=="Top"&&$logo!=undefined){
			$logo.css('top',-$j(document).scroll().scrollTop())
		}
		//if an image is displayed in fullsize. fix top position
		if(zoomOn)$zoomholder.css('top',zoomtoptmp-$j(document).scroll().scrollTop());
		
		}
}
// <<<END]]] SCROLL HANDLER


var prevrbtnw=300;
	
//the invisible button for going to Next Page. placed on the right
function SetRightBtnWidth(){
	if(curpage==pagecount)$nextbtn.css('width',0);//hide if on the last page
	else {
	//calculate position & width
	var leftoff = $nav.position().left%pagewidth;
	var rbtnw = $j(window).width()+leftoff-pagewidth;
		
	if(rbtnw>pagewidth/2){
		if((pagewidth-leftoff)+pagewidth<$j(window).width()){
			rbtnw=$j(window).width()-(pagewidth-leftoff)-pagewidth;
		} else rbtnw=0;
	}
	if(rbtnw!=prevrbtnw){
		prevrbtnw = rbtnw;
		$nextbtn.css('width',rbtnw);
	}
	}
}

//"NEXT PAGE" LABEL
function StickLabel(e){
		$nextlabel.css('top',e.pageY-$nextlabel.height()/2-$j(document).scroll().scrollTop()).css('left',e.pageX-$nextlabel.width()-$j(document).scroll().scrollLeft());
	}
	
	var $preva;
	
//MAIN FUNCTION. SCROLLS PAGES, ANIMATES NAVIGATION			[[[START>>>
	
function GoToPage(skipscroll){
			//if user has scrolled down
			if(skipscroll===undefined&&$j(document).scroll().scrollTop()>0){
			$nav.animate({height:$j('.Footer').position().top-$j(window).height()+($j(window).height()-halfheight), top:halfheight},300)
			$j(window).scrollTo(0,300,{axis:'y'});//scroll up and then recall
			if(logofloat=="Top"&&$logo!=undefined)$logo.animate({top:0},300);
			setTimeout(function(){GoToPage()},400);
			} else {
			//FOLLOWING ACTIONS ARE FOR THE PREVIOUSLY SELECTED NAV BUTTON
			$a.css('cursor','pointer');
			$a.unbind('click').click(NavClick);//reattach the main click event
			$preva=$a;
			//hide SubNavigation if one is displayed
			if(subon)HideSub();
			//hide next page button on the right
			$nextbtn.css('width',0);prevrbtnw=0;
			//nav arrow goes out or down
			if(AnimateNavArrow){
				if(animatenavtype=="horizontal")$arrow.stop().animate({"left":"-230px"},500);
				else if(animatenavtype=="vertical")$arrow.stop().animate({"top":navtops[curpage]+"px"},1000);
				$span.stop().animate({marginLeft:0,fontSize:NavFontSize1},500);//animate prev nav button to shrink
				$preva.removeClass('Active');
			} else {
			/* if animation is turned off */$preva.removeClass('StaticActive');$span.css('margin-left',0).css('font-size',NavFontSize1)}
			
			
			intc=0;
			clearInterval(intid);
			if(CufonTypography&&AnimateNavArrow){//animate cufon by refreshing it each 100 miliseconds
			intid = setInterval(function(){
				Cufon.refresh('#'+$preva.attr('id'));intc+=100;if(intc>=500)clearInterval(intid);
				},100);}
			
			//GET CURRENTLY CLICKED NAV BUTTON AND PERFORM SIMILAR ACTIONS
			$a = $navlinks[curpage-1];
			$a.unbind('click').click(ReturnMainContent);//in case a subpage is clicked
			$a.attr('class','MidActive');//change class to one which applies during transition
			
			$span = $j('span',$a);
			$measurer.text($a.text());
			if(CufonTypography)Cufon.refresh("#measurer");//measure the future size of cufon text
			
			//if nav arrow is static
			if(AnimateNavArrow==false){
				$a.attr('class','StaticActive');
				var tmpvr = Number($a.css('margin-left').replace(/px/,'')); if($a.css('margin-left')=="auto")tmpvr = -5;
				$span.css('margin-left',halfnav-$measurer.width()/2-tmpvr*2).css('font-size',NavFontSize2);//center text
				Cufon.refresh('#'+$preva.attr('id'));
				Cufon.refresh('#'+$a.attr('id'));
			}
			//link to page
			scrollto = $a.text().replace(/ /g,"-");
			//scroll to page for xxxx miliseconds
			if(skipscroll===undefined) $j(window).scrollTo('#'+scrollto,scrolltime,{easing:ScrollEasing});
			
			//resume function after 500 miliseconds
			setTimeout(function(){
			if(AnimateNavArrow){
			if(animatenavtype=="horizontal"){
			$arrow.css('top',(navtops[curpage])+'px')//setup top position of arrow
			$arrow.stop().animate({"left":"30px"},500);//nav arrow goes in
			}
			$span.stop().animate({marginLeft:halfnav-$measurer.width()/2, fontSize:NavFontSize2},500);//nav button expands
			}
			intc2=0;
			clearInterval(intid2);
			intid2 = setInterval(function(){//animate cufon by refreshing it
				if(CufonTypography&&AnimateNavArrow)Cufon.refresh('#'+$a.attr('id'));intc2+=100;
				if(intc2>=500){//...and in the end:
					clearInterval(intid2);
					scrolling=true;//listen for manual scroll
					if(AnimateNavArrow){$a.attr('class','Active');
					Cufon.refresh('#'+$a.attr('id'));
					//Cufon.replace('#'+$a.attr('id'), {textShadow: CufonShadow, fontFamily: Cufon1, fontWeight: Cufon1w, hover:{color:navcss.style.color}});
					$a.css('cursor','default');}
					SetRightBtnWidth();
					if(skipscroll===undefined){
					if(url==undefined)url=String(window.location);
					if(url.indexOf('#')!=-1)url = url.substr(0,url.indexOf('#'));//handle url location
					skiphash=true;
					window.location = url+"#"+scrollto;
					}
					if($subnavs[curpage-1]!=undefined)DropDownSub();//if there is a submenu
				}
				},100);		
			},500);
			}
}

//  <<<END]]]  		MAIN FUNCTION



	
//SUB NAVIGATION FUNCTIONALITY		[[[START>>>
	
var $cursub,subon=false,subh,$contentlink;
var maincontent = [];
var subopened = [];
	
	
//when clicked on a subnavigation <a
	
function ClickSubNav(e){
		e.preventDefault();
		$j('a',$j(this).parent()).removeClass('Active');
		$a.css('cursor','pointer');
		$j(this).attr('class','Active');
		var contentstr = scrollto+"Content";
		var href = $j(this).attr('href');
		if(href.indexOf(mainurl)!=-1)href=href.substr(mainurl.length);//for wp hack
		$contentlink = $j('#'+scrollto+' .Content');
		ShowSubPage($contentlink,scrollto,href);
}
	
	//Return the main content of a page after a subpage has been loaded in its place
	
	function ReturnMainContent(e1,e2){
		if(e1)e1.preventDefault();
		else if(e2)e2.preventDefault();
		
		var contentstr = scrollto+"Content";
		subopened[contentstr]=false;
		if(maincontent[contentstr]!=undefined){
		//remove hover from subnav
		$j('a',$subnavs[curpage-1]).removeClass('Active');
		//fade out subpage
		$contentlink = $j('#'+scrollto+' .Content');
		if(jQuery.browser.msie){
			$contentlink.html(maincontent[contentstr]);
			//trigger plugins
			initReplaceLinks('#'+scrollto+' .Content');
			initHoverImages('#'+scrollto+' .Content');
			initZoomImages('#'+scrollto+' .Content');
			initCufons('#'+scrollto+' .Content');
			//handle url
			url = String(window.location);
			if(url.indexOf('#')!=-1)url = url.substr(0,url.indexOf('#')+1)+scrollto;
			else url += "#"+scrollto;
			skiphash=true;
			window.location = url;
		}
		else {
		$contentlink.animate({opacity:0},500,function(){
			//fade in original page
			$contentlink.html(maincontent[contentstr]);
			$contentlink.animate({opacity:1},500);	
			//trigger plugins
			initReplaceLinks('#'+scrollto+' .Content');
			initHoverImages('#'+scrollto+' .Content');
			initZoomImages('#'+scrollto+' .Content');
			initCufons('#'+scrollto+' .Content');
			//handle url
			url = String(window.location);
			if(url.indexOf('#')!=-1)url = url.substr(0,url.indexOf('#')+1)+scrollto;
			else url += "#"+scrollto;
			skiphash=true;
			window.location = url;
		});}
		
		$a.css('cursor','default');
		}
	}
	//click on a main navigation button
	
	function NavClick(e){
			e.preventDefault();
			scrolling = false;//don't detect manual scrolling
			var i=0; while($navlinks[i].text()!=$j(this).text())i++;//detect nav index
			curpage=i+1;
			
			GoToPage();
	}
	
	var nvcurpage,$nva,sublinkson=false,subhl;
	
	function NavLinksClick(e){
			e.preventDefault();
			if(sublinkson)HideSubLinks();
			else {
			var i=0; while($navlinks[i].text()!=$j(this).text())i++;//detect nav index
			nvcurpage=i+1;
			$nva = $j(this);
			DropDownSubLinks();
			}
	}
	//when a navigation button which has a subnavigation is pressed
	function DropDownSub(){
		if(sublinkson)HideSubLinks();
		subon=true;
		//get the subnav
		$cursub = $subnavs[curpage-1];
		subh = $cursub.height()+1;
		//position the subnav
		$cursub.css('top',$a.position().top+48);
		$cursub.css('display','block').css('height',0);
		//add a "spacer" after nav button
		if($cursub.next().attr('class')!="SubNavSpacer")$cursub.after('<div class="SubNavSpacer">&nbsp;</div>');
		//expand subnav and spacer
		$cursub.next('div').animate({height:subh},500);
		$cursub.animate({height:subh+1},500);
	}
	
	function HideSub(){
		subon=false;
		$cursub.next('div').animate({height:0},200);
		$cursub.stop().animate({height:0},200,function(){$cursub.css('display','none').css('height',subh); });
	}
	
	//the subnavigation which is of type Links behaves a bit differently than the normal one
	function DropDownSubLinks(){
		sublinkson=true;
		//get the subnav
		$cursublinks = $subnavs[nvcurpage-1];
		subhl = $cursublinks.height()+1;
		//position the subnav
		$cursublinks.css('top',$nva.position().top+33);
		$cursublinks.css('display','block').css('height',0);
		//add a "spacer" after nav button
		if($cursublinks.next().attr('class')!="SubNavSpacer")$cursublinks.after('<div class="SubNavSpacer">&nbsp;</div>');
		//expand subnav and spacer
		$cursublinks.next('div').animate({height:subhl},500);
		$cursublinks.animate({height:subhl+1},500);
	}
	
	function HideSubLinks(){
		sublinkson=false;
		$cursublinks.next('div').animate({height:0},200);
		$cursublinks.stop().animate({height:0},200,function(){$cursublinks.css('display','none').css('height',subhl); });
	}

// 	<<<END]]] 	SUBNAVIGATION FUNCTIONALITY



//PLUGINS START HERE
	
	//CUFON REPLACEMENT PLUGIN
	function initCufons(selector){
		if(CufonTypography){
		//replace H1~H6 which don't have hover specification
		
		$j(selector+" h1:not([class*='Cufon']),h2:not([class*='Cufon']),h3:not([class*='Cufon']):not([class*='Cufon']),h4:not([class*='Cufon']),h5:not([class*='CufonHover']),h6:not([class*='Cufon'])").each(function(){
			Cufon.replace($j(this),{fontFamily: Cufon2, fontWeight: Cufon2w});
		});
		$j(selector+' .BlogSide a').each(function(){Cufon.replace($j(this),{fontFamily: Cufon2, fontWeight: Cufon2w});});
		var font;
		//replace elements which have CufonHover specification (rel="CufonHover(font,#color)")
		$j(selector+" [class*='CufonHover']").each(function(){
			var relstr = $j(this).attr('class');
			relstr = relstr.substring(relstr.indexOf("(")+1,relstr.indexOf(")"));
			if(relstr.indexOf(",")!=-1){
				font = relstr.substr(0,relstr.indexOf(','));
				var fontweight;
				if(font.toLowerCase()=="font1"){font= Cufon1;fontweight = Cufon1w}
				else if(font.toLowerCase()=="font2"){font= Cufon2;fontweight = Cufon2w}
				Cufon.replace($j(this),{fontFamily: font, fontWeight:fontweight,  hover:{color:relstr.substring(relstr.indexOf(',')+1)}});
			}
		});
		//replace elements which have Cufon specification (rel="Cufon(font)")
		$j(selector+" [class*='Cufon(']").each(function(){
		font = $j(this).attr('class').substring($j(this).attr('class').indexOf('(')+1,$j(this).attr('class').indexOf(')'));
		var fontweight;
		if(font.toLowerCase()=="font1"){font= Cufon1;fontweight=Cufon1w}
		else if(font.toLowerCase()=="font2"){font= Cufon2;fontweight=Cufon2w}
		Cufon.replace($j(this),{fontFamily: font, fontWeight:fontweight});});
		
		//Replace "BaseBtn"
		Cufon.replace($j(selector+' .BaseBtn'),{textShadow: CufonShadow, fontFamily: Cufon1, fontWeight: Cufon1w});
		Cufon.replace($j(selector+' .BackBtn'),{textShadow: CufonShadow, fontFamily: Cufon1, fontWeight: Cufon2w});
		}
	}
	
	
	//IMAGE ZOOM PLUGIN (transition between a thumbnail and a fullsize image)
	
	var zoomurl,zoomimg,$zoomoimg,$zoomholder,$zoomloadhover;
	var $zoomimgholder,$zoomholderbg,$zoomnext,$zoomprev,nw,nh,zoomtoptmp;
	var zoomOn=false;
	
	function initZoomImages(selector){
		//set up listeners & hovers for Zoom (not ZoomVideo)
		$j(selector+" img[class*='Zoom']:not([class*='ZoomVideo'])").each(function(){
			$j(this).mouseover(
				function(){
					if($j(this).prev().attr('class')!="ImageZoomHover"){
					//attach a hover div on first hover
					$j(this).before('<div class="ImageZoomHover" style="width:'+$j(this).width()+'px; height:'+$j(this).height()+'px; top:'+$j(this).offset().top+'px; left:'+$j(this).offset().left+'px; padding:0"></div>');
					//add listener for mouseout and click on the div
					$j(this).prev('div').css('opacity',0).hover(function(){$j(this).css('top',$j(this).next().offset().top).css('left',$j(this).next().offset().left).stop().animate({opacity:0.4},500)},function(){$j(this).stop().animate({opacity:0},500)}).click(ZoomImage);
					}
					}
			);
		});
		
		$j(selector+" img[class='ZoomVideo']").each(function(){
		//set up listeners & hovers for ZoomVideo
			$j(this).mouseover(
				function(){
					if($j(this).prev().attr('class')!="ImageZoomHover"){
					//attach a hover div on first hover
					$j(this).before('<div class="ImageZoomVideoHover" style="width:'+$j(this).width()+'px; height:'+$j(this).height()+'px; top:'+$j(this).offset().top+'px; left:'+$j(this).offset().left+'px; padding:0"></div>');
					//add listener for mouseout and click on the div
					$j(this).prev('div').css('opacity',0).hover(function(){$j(this).css('top',$j(this).next().offset().top).css('left',$j(this).next().offset().left).stop().animate({opacity:0.4},500)},function(){$j(this).stop().animate({opacity:0},500)}).click(ZoomVideo);
					}
			});
		});
	}
	
	//when clicked on an image linked to a video
	function ZoomVideo(e){
		zoomOn=true;
		e.preventDefault();
		$j(this).css('opacity',0);
		$j('.Screen').append('<div class="ZoomHolder"><div class="ZoomImgHolder"></div></div><div class="ZoomHolderBg"></div>');
		$zoomoimg = $j(this).next('img');
		$zoomholder = $j('.ZoomHolder');
		$zoomholderbg = $zoomholder.next('div');
		$zoomimgholder = $j('.ZoomImgHolder', $zoomholder);
		$zoomholderbg.css('opacity',0).css('width',$j(window).width()).css('height',$j(window).height());
		
		$zoomimgholder.html(zoomimg);
		if($zoomoimg.attr("alt")!="")$zoomholder.prepend('<div class="ZoomHolderBar"><h3>'+$zoomoimg.attr('alt')+'</h3><a class="BaseBtn">Close</a></div>');
		else $zoomholder.prepend('<div class="ZoomHolderBar" style="background:none"><a class="BaseBtn">Close</a></div>');
		zoomurl = $j(this).parent().attr('href');
		//get video size if set from rel
		if($j(this).parent().attr('rel')!=undefined){
			var visize = $j(this).parent().attr('rel');
			nw = Number(visize.substr(0,visize.indexOf("x")));
			nh = Number(visize.substr(visize.indexOf("x")+1));
		} else { 
			// else set these defaults
			nw = 480;
			nh = 320;
		}
		$zoomholder.css('margin-top',$zoomoimg.position().top-$j(document).scroll().scrollTop()).css('margin-left',$zoomoimg.position().left-$j(document).scroll().scrollLeft()).css('display','block');
		$zoomimgholder.css('width',$zoomoimg.width()).css('height',$zoomoimg.height());
		$zoomholderbar = $j('.ZoomHolderBar',$zoomholder);
		$zoomholderbar.css('opacity',0);
		$j('.BaseBtn',$zoomholderbar).css('cursor','pointer').click(CloseZoom2Image);
		$zoomholderbar.delay(500).animate({top:-$zoomholderbar.height(), opacity:1},500);
		
		var tmpx = $j(window).height()/2-nh/2; if(tmpx<$zoomholderbar.height())tmpx=$zoomholderbar.height();
		zoomtoptmp = tmpx+$j(document).scroll().scrollTop();
		$zoomholder.animate({marginLeft:$j(window).width()/2-nw/2, marginTop:tmpx},500);
		$zoomimgholder.animate({width:nw, height:nh},500);
		
		$zoomholderbg.animate({opacity:0.5},500,function(){
			initCufons('.ZoomHolder');
			$zoomimgholder.html('<object width="'+nw+'" height="'+nh+'"><param name="movie" value="'+zoomurl+'"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="'+zoomurl+'" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="'+nw+'" height="'+nh+'"></embed></object>');
			$zoomholderbg.click(CloseZoomVideo);
		})
	}
	
	
	//When clicked on an image
	function ZoomImage(e){
		zoomOn=true;
		e.preventDefault();//don't open link
		//append the div which holds the zoomed image
		$j('.Screen').append('<div class="ZoomHolder"><div class="ZoomImgHolder"></div></div><div class="ZoomHolderBg"></div>');
		//set up some links
		$zoomoimg = $j(this).next('img');
		zoomurl = $j(this).parent().attr('href');
		$zoomholder = $j('.ZoomHolder');
		$zoomimgholder = $j(".ZoomImgHolder", $zoomholder);
		$zoomholderbg = $zoomholder.next('div');
		$zoomholderbg.css('opacity',0).css('width',$j(window).width()).css('height',$j(window).height());
		$j(this).after('<div class="ImageLoaderHover" style="width:'+$j(this).width()+'px; height:'+$j(this).height()+'px; top:'+$j(this).css('top')+'px; left:'+$j(this).css('left')+'px; padding:0"></div>');
		$zoomloadhover = $j(this).next();
		$j(this).css('opacity',0);//remove the ZOOM! hover div
		$zoomholder.css('opacity',0);
		zoomimg = new Image();
		//add listener for image loaded (mode 1 or mode 2)
		if($zoomoimg.attr('class').indexOf("Zoom1")!=-1){$j(zoomimg).load(Zoom1LoadedImage).attr('src',zoomurl);$zoomholderbg.click(CloseZoom1Image)}
		else if($zoomoimg.attr('class').indexOf("Zoom2")!=-1){$j(zoomimg).load(Zoom2LoadedImage).attr('src',zoomurl);$zoomholderbg.click(CloseZoom2Image)}
	}
	
	//fullsize image loaded
	function Zoom1LoadedImage(){
		$zoomholder.css('opacity',1);
		$zoomloadhover.remove();
		$zoomimgholder.html(zoomimg);//attach image
		//attach title bar if IMG has an alt tag
		if($zoomoimg.attr("alt")!=""){$zoomholder.prepend('<div class="ZoomHolderBar"><h3>'+$zoomoimg.attr('alt')+'</h3><a class="BaseBtn">Close</a></div>');
		$zoomholderbar = $j('.ZoomHolderBar',$zoomholder);
		}
		else {$zoomholder.prepend('<div class="ZoomHolderBar2"><a class="BaseBtn">Close</a></div>');
		$zoomholderbar = $j('.ZoomHolderBar2',$zoomholder);
		}
		
		nw = $j(zoomimg).width();
		nh = $j(zoomimg).height();
		$j(zoomimg).width($zoomoimg.width()).height($zoomoimg.height()).css('height',$zoomoimg.height());
		
		$zoomholder.css('margin-top',$zoomoimg.position().top-$j(document).scroll().scrollTop()).css('margin-left',$zoomoimg.position().left-$j(document).scroll().scrollLeft()).css('display','block');
		
		$j('.BaseBtn',$zoomholderbar).css('cursor','pointer').click(CloseZoom1Image);
		$zoomholderbar.delay(500).animate({top:-$zoomholderbar.height()},500);
		var tmpx = $j(window).height()/2-nh/2; if(tmpx<$zoomholderbar.height())tmpx=$zoomholderbar.height();
		zoomtoptmp=tmpx+$j(document).scroll().scrollTop();
		$zoomholder.animate({marginLeft:$j(window).width()/2-nw/2, marginTop:tmpx},500);
		$zoomholderbg.animate({opacity:0.5},500);
		$j(zoomimg).animate({width:nw, height:nh},500,function(){
			
			//if REL tag has a group specified, attach NEXT & PREV buttons
			if($zoomoimg.attr('class').indexOf("(")!=-1)AttachZoomNav();
			else initCufons('.ZoomHolder');
		});
	}
	//fullsize image loaded
	function Zoom2LoadedImage(){
		$zoomholder.css('opacity',1);
		$zoomloadhover.remove();
		$zoomimgholder.html(zoomimg);
		if($zoomoimg.attr("alt")!="")$zoomholder.prepend('<div class="ZoomHolderBar"><h3>'+$zoomoimg.attr('alt')+'</h3><a class="BaseBtn">Close</a></div>');
		else $zoomholder.prepend('<div class="ZoomHolderBar" style="background:none"><a class="BaseBtn">Close</a></div>');
		
		nw = $j(zoomimg).width();
		nh = $j(zoomimg).height();
		$zoomholder.css('margin-top',$zoomoimg.position().top-$j(document).scroll().scrollTop()).css('margin-left',$zoomoimg.position().left-$j(document).scroll().scrollLeft()).css('display','block');
		$zoomimgholder.css('width',$zoomoimg.width()).css('height',$zoomoimg.height());
		$zoomholderbar = $j('.ZoomHolderBar',$zoomholder);
		$j('.BaseBtn',$zoomholderbar).css('cursor','pointer').click(CloseZoom2Image);
		$zoomholderbar.delay(500).animate({top:-$zoomholderbar.height()},500);
		
		var tmpx = $j(window).height()/2-nh/2; if(tmpx<$zoomholderbar.height())tmpx=$zoomholderbar.height();
		zoomtoptmp=tmpx+$j(document).scroll().scrollTop();
		$zoomholder.animate({marginLeft:$j(window).width()/2-nw/2, marginTop:tmpx},500);
		$zoomimgholder.animate({width:nw, height:nh},500);
		$zoomholderbg.animate({opacity:0.5},500,function(){
			
			//if REL tag has a group specified, attach NEXT & PREV buttons
			if($zoomoimg.attr('class').indexOf("(")!=-1)AttachZoomNav();
			else initCufons('.ZoomHolder');
		})
	}
	
	var $albumstack = new Array();
	var album_current=-1;
	
	//Handle Next & Prev buttons
	function AttachZoomNav(){
		//get album name
		var album = $zoomoimg.attr('class').substring($zoomoimg.attr('class').indexOf("(")+1,$zoomoimg.attr('class').indexOf(")"));
		//collect all imgs from this album and save them in an array
		$albumquery = $j('[class*="('+album+')"]');
		if($albumquery.length>1){
		var album_count=-1;
		$albumstack = new Array();
		$albumquery.each(function(){
			$albumstack.push($j(this));
			album_count++;
			if($j(this).attr('src')==$zoomoimg.attr('src'))album_current=album_count;
		});
		
		//append NEXT & PREV buttons
		$zoomholder.append('<div class="Prev"><a class="BaseBtn">Prev</a></div><div class="Next"><a class="BaseBtn">Next</a></div>');
		$zoomprev = $j('.Prev', $zoomholder);
		//set up width, height, hover & click
		$zoomprev.css('width',nw*0.3).css('height',nh).hover(function(){$j('a',$zoomprev).css('visibility','visible')},function(){$j('a',$zoomprev).css('visibility','hidden')}).click(ZoomPrev);
		$j('a',$zoomprev).css('margin-top',nh/2-10).css('float','left');
		$zoomnext = $j('.Next', $zoomholder);
		$zoomnext.css('width',nw*0.3).css('height',nh).hover(function(){$j('a',$zoomnext).css('visibility','visible')},function(){$j('a',$zoomnext).css('visibility','hidden')}).click(ZoomNext);
		$j('a',$zoomnext).css('margin-top',nh/2-10).css('float','right');
		
		}
		initCufons('.ZoomHolder');
	}
	
	//next button pressed
	function ZoomNext(){
		//fix zoomimgholder size
		$zoomimgholder.css('width',$j(zoomimg).width()).css('height',$j(zoomimg).height());
		$j(zoomimg).animate({opacity:0},300);
		zoomimg = new Image();
		album_current++;//next image in stack
		if(album_current>$albumstack.length-1)album_current=0;//loop
		$zoomoimg = $albumstack[album_current];
		$j(zoomimg).load(NextLoadedImage).attr('src',$albumstack[album_current].parent().attr('href'));//load
	}
	//prev button pressed
	function ZoomPrev(){
		//fix zoomholder size
		$zoomimgholder.css('width',$j(zoomimg).width()).css('height',$j(zoomimg).height());
		$j(zoomimg).animate({opacity:0},300);
		zoomimg = new Image();
		album_current--;//prev image in stack
		if(album_current<0)album_current=$albumstack.length-1;//loop
		$zoomoimg = $albumstack[album_current];
		$j(zoomimg).load(NextLoadedImage).attr('src',$albumstack[album_current].parent().attr('href'));//load
	}
	
	//when loaded Next or Prev image
	function NextLoadedImage(){
		$j(zoomimg).css('opacity',0);
		//expand or shrink holder
		$zoomimgholder.html(zoomimg).animate({width:$j(zoomimg).width(),height:$j(zoomimg).height()},500,function(){$j(zoomimg).animate({opacity:1},500)});
		nw = $j(zoomimg).width();
		nh = $j(zoomimg).height();
		$zoomnext.css('width',nw*0.3).css('height',nh);
		$j('a',$zoomnext).animate({marginTop:nh/2-10},200);
		$zoomprev.css('width',nw*0.3).css('height',nh);
		$j('a',$zoomprev).animate({marginTop:nh/2-10},200);
		//calc top
		var tmpx = $j(window).height()/2-nh/2; if(tmpx<$zoomholderbar.height())tmpx=$zoomholderbar.height();
		//position
		$zoomholder.animate({marginLeft:$j(window).width()/2-nw/2, marginTop:tmpx},500);
		//swap upper bar (title & close)
		$zoomholderbar.animate({opacity:0},200,function(){
			if($zoomoimg.attr('alt')!=""){
				if($j('h3',$zoomholderbar).length>0)$j('h3',$zoomholderbar).html($zoomoimg.attr('alt'));
				else {$zoomholderbar.prepend('<h3>'+$zoomoimg.attr('alt')+'</h3>');$zoomholderbar.attr('class','ZoomHolderBar');}
				initCufons('.ZoomHolderBar');
			} else {$j('h3', $zoomholderbar).remove();$zoomholderbar.attr('class','ZoomHolderBar2');}
			$zoomholderbar.animate({opacity:1},200);
		});
	}
	
	//Close Zoomed Image
	
	function CloseZoom1Image(){
		$zoomholderbg.animate({opacity:0},500,function(){$j(this).remove()});
		$zoomholder.animate({opacity:0,marginLeft:$zoomoimg.position().left-$j(document).scroll().scrollLeft(), marginTop:$zoomoimg.offset().top-$j(document).scroll().scrollTop()},500,function(){$j(this).remove(); zoomOn=false;});
		$zoomimgholder.animate({width:$zoomoimg.width(), height:$zoomoimg.height()},500);
	}
	
	function CloseZoom2Image(){
		$zoomholderbg.animate({opacity:0},500,function(){$j(this).remove()});
		$zoomimgholder.animate({width:$zoomoimg.width(),height:$zoomoimg.height()},500)
		$zoomholder.animate({opacity:0,marginLeft:$zoomoimg.position().left-$j(document).scroll().scrollLeft(), marginTop:$zoomoimg.position().top-$j(document).scroll().scrollTop()},500,function(){$j(this).remove(); zoomOn=false;});
	}
	function CloseZoomVideo(){
		$zoomholder.css('background',$zoomholder.css('background-color'));
		$zoomimgholder.html('');
		$zoomholderbg.animate({opacity:0},500,function(){$j(this).remove()});
		$zoomimgholder.animate({width:$zoomoimg.width(),height:$zoomoimg.height()},500)
		$zoomholder.animate({opacity:0,marginLeft:$zoomoimg.position().left-$j(document).scroll().scrollLeft(), marginTop:$zoomoimg.position().top-$j(document).scroll().scrollTop()},500,function(){$j(this).remove(); zoomOn=false;});
	}
	

//INNER LINKS Plugin
	
	//replace links to subpages with a rel="inner" attribute load subpages inside the proper "Content" div
	
	function initReplaceLinks(selector){
		
		$j(selector+" a[rel*='inner']").each(function(){
				$j(this).unbind('click');
				$j(this).click(function(e){
					e.preventDefault();
					var href = $j(this).attr('href');
					if(href.indexOf(mainurl)!=-1)href=href.substr(mainurl.length);//for wp hack
					//go up in html until reached div "Content"
					$contentlink = $j(this).parent();
					while($contentlink.attr('class')!="Content")$contentlink = $contentlink.parent();
					//set up some links
					var pagelink = $contentlink.parent().attr('id');
					ShowSubPage($contentlink,pagelink,href)
				});
			
		});
		if($j(selector+" #commentform").length>0)HandleCommentForm(selector);
		if($j(selector+" .PassProtForm").length>0)HandlePassProtForm(selector);
	}
	
	//this function gets called when there is an "inner link"
	
	function ShowSubPage($contentlink,pagelink,href,back){
		if(href.indexOf(mainurl)!=-1)href=href.substr(mainurl.length);
		var contentstr = pagelink+"Content";
					subopened[contentstr]=true;
					//save original content
					if(maincontent[contentstr]==undefined)maincontent[contentstr]= $contentlink.html();
					//load the external page
					if(jQuery.browser.msie){
					//no fadein-fadeout for IE (due to problem with transparent pngs)
						$contentlink.css('visibility','hidden');
						$contentlink.load(href+' #SubContent',function(resp,status){
							$contentlink.css('visibility','visible');
							if(href.indexOf("#")!=-1)$j(document).scrollTo(href.substr(href.indexOf("#")),500,{axis:'y'});
							else if($j(document).scroll().scrollTop()>halfheight+500) $j(document).scrollTo(0,500,{axis:'y'});
							//trigger plugins
							setTimeout(function(){initLoadingImages('#'+pagelink+' .Content img');},100);
							initReplaceLinks('#'+pagelink+' .Content');
							initHoverImages('#'+pagelink+' .Content');
							initZoomImages('#'+pagelink+' .Content');
							initCufons('#'+pagelink+' .Content');
							//handle url
							if(back==undefined){
							url = String(window.location);
							if(url.indexOf('#')!=-1)url = url.substr(0,url.indexOf('#')+1)+pagelink;
							else url += "#"+pagelink;
							//fix link repetition
							var repos=href.toLowerCase().indexOf(pagelink.toLowerCase());
							if(repos!=-1)href=href.substr(repos+pagelink.length+1);
							//change url
							url+="/"+href;
							skiphash=true;
							window.location = url;
							}
							}
						);
					}
					else {
					//fadein-fadeout for Non-IE
					
					$contentlink.animate({opacity:0},500,function(){
						//append a loading
						var calctop=$contentlink.position().top-$j(document).scroll().scrollTop();
						if(calctop<0)calctop=0;
						$contentlink.before('<div class="PageLoader" style="padding:0; height:'+($j(window).height()-calctop)+'px; width:'+(pagewidth-$nav.width())+'px; top:'+calctop+'px; left:'+$nav.width()+'px"></div>');
						$contentlink.load(href+' #SubContent',function(resp,status){
							$contentlink.prev().remove();
							$contentlink.animate({opacity:1},500,function(){
							//scroll to second anchor if there is one
							if(href.indexOf("#")!=-1){
							if($j(href.substr(href.indexOf("#"))).length>0)
							$j(document).scrollTo(href.substr(href.indexOf("#")),500,{axis:'y'});
							} else if($j(document).scroll().scrollTop()>halfheight+500) $j(document).scrollTo(0,500,{axis:'y'});
							});
							//trigger plugins
							setTimeout(function(){initLoadingImages('#'+pagelink+' .Content img');},100);
							initReplaceLinks('#'+pagelink+' .Content');
							initHoverImages('#'+pagelink+' .Content');
							initZoomImages('#'+pagelink+' .Content');
							initCufons('#'+pagelink+' .Content');
							//handle url
							if(back==undefined){
							url = String(window.location);
							urldiv = url.indexOf('#');
							if(urldiv!=-1)url = url.substr(0,urldiv+1)+pagelink;
							else url += "#"+pagelink;
							//fix link repetition
							var repos=href.toLowerCase().indexOf(pagelink.toLowerCase());
							if(repos!=-1)href=href.substr(repos+pagelink.length+1);
							//change url
							url+="/"+href;
							skiphash=true;
							window.location = url;
							}
							}
						);
						}
					);
					}
	}
	
	
	//IMAGE LOADING PLUGIN
	function initLoadingImages(selector){
	if(ImageLoadingPlugin){
	$j(selector).each(function(){
		if($j(this).width()>100&&$j(this).height()>100&&this.complete==false){
		$j(this).before('<div class="ImageLoader" style="width:'+$j(this).width()+'px; height:'+$j(this).height()+'px; top:'+$j(this).position().top+'px; left:'+$j(this).position().left+'px; padding:0"></div>');
		$j(this).load(function(){
			var tmpw = $j(this).width()+$j(this).position().left;
			$j(this).prev('div').animate({width:0, left:tmpw, opacity:0},1500,function(){$j(this).remove()});
		});
		}
	});}
	}
	
	//IMAGE HOVER PLUGIN
	
	function initHoverImages(selector){
		if(ImageHoversPlugin){
		$j(selector+' a img:not([class*=Zoom])').each(function(){
			$j(this).mouseover(
				function(){
					$j(this).before('<div class="ImageHover" style="width:'+$j(this).width()+'px; height:'+$j(this).height()+'px; top:'+$j(this).position().top+'px; left:'+$j(this).position().left+'px; padding:0"></div>');
					
					$j(this).prev('div').css('opacity',0).stop().animate({opacity:0.3},300).delay(100).animate({opacity:0},300).mouseout(function(){$j(this).remove()}).click(function(){$j(this).remove()});
				}
			);
		});
		}
	}

// END OF PLUGINS


//MISC WP HANDLERS


function HackLink(e,anchor){
	//very rarely there are links which need a bit of tweaking
	e.preventDefault();
	url = String(window.location);
	urldiv = url.indexOf('#');
	if(urldiv!=-1)url=url.substr(0,urldiv);
	var href = $j(anchor).attr('href');
	var escurl = escape(url);
	escurl = escurl.replace(/\//g,"%2F");
	href = href.substr(0,href.lastIndexOf(escurl))+escurl+"#"+scrollto+"%2F"+href.substr(href.lastIndexOf(escurl)+escurl.length);
	window.location=href;
}

//WP COMMENT FORM HANDLER
var $commentform,commentinputdefaults=[];

function HandleCommentForm(selector){
	$commentform = $j(selector+' #commentform .ContactForm');
	commentinputdefaults=[];
	if($commentform.length>0){
	//make the form use ajax
	$j(selector+' #commentform').resetForm().ajaxForm({beforeSubmit:CheckCommentForm, success:SentCommentForm}).find('input:not([type="submit"]),textarea').each(function(){
		//save original values in an array
		commentinputdefaults[$j(this).attr('name')]=$j(this).attr('value');
		//add focus in/out listeners so that values are erased on click/focus
		$j(this).focusin(function(){if( $j(this).attr('value')==commentinputdefaults[$j(this).attr('name')] )$j(this).attr('value','');});
		$j(this).focusout(function(){if( $j(this).attr('value')=="" )$j(this).attr('value',commentinputdefaults[$j(this).attr('name')]);});
	});
	}
}
function CheckCommentForm(){
	//check whether user has inserted content in all required fields
		var submit=true;
			$j('input:not([type="submit"]),textarea',$commentform).each(function(){
				if(commentinputdefaults[$j(this).attr('name')].indexOf("required")!=-1||commentinputdefaults[$j(this).attr('name')].indexOf("*")!=-1){
					if($j(this).attr('value')==""||$j(this).attr('value')==commentinputdefaults[$j(this).attr('name')]){
						submit=false;
						
						if($j(this).is('input'))$j(this).attr('class','InputError');
						else if($j(this).is('textarea'))$j(this).attr('class','TextareaError');
					} else {
						if($j(this).is('input'))$j(this).removeClass('InputError');
						else if($j(this).is('textarea'))$j(this).removeClass('TextareaError');
						if($j(this).attr('name')=="Email")if(ValidEmail($j(this).attr('value'))==false){submit=false;$j(this).attr('class','InputError')}
					}
				}
			});
			if(submit){
				//attach a div which covers the form and displays loading
				$commentform.before('<div class="ImageLoader" style="width:'+$commentform.width()+'px; height:'+$commentform.height()+'px; top:'+$commentform.position().top+'px; left:'+$commentform.position().left+'px; padding:0"></div>');
			}
			return submit;
	}
	
	function SentCommentForm(){
		//show notification
		$commentform.prev().css('background','#fff').html('<div style="margin-top:'+($commentform.height()/2-40)+'px; width:100%; text-align:center; color:#eee"><h5>Thank you.<br /><br /> Your comment has been sent!</h5></div>').delay(2000).animate({opacity:0},500,function(){$j(this).remove();});
		if(CufonTypography)Cufon.replace($contactform.prev(), {fontFamily: Cufon2, fontWeight: Cufon2w});
	}
	
	
	var passprotperma,$passprotform;
	
function PassProtForm(perma){
	passprotperma=perma;
}

function HandlePassProtForm(selector){
	$j(selector+" .PassProtForm").ajaxForm({success:SentPassProt});
}


function SentPassProt(){

	ShowSubPage($j('#'+scrollto+' .Content'),scrollto,passprotperma);
}


function HandleSearch(form){
	
	if($j(' input[type=text]',$j(form)).attr('value')!=""){
		ShowSubPage($j('#'+scrollto+" .Content"),scrollto,'?s='+$j(' input[type=text]',$j(form)).attr('value'));
		
	}
	return false;
}



function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
 
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
 
    return vars;
}





// THE END
//thanks for watching :)
