var loc = "homepage"; //global and content-specific indicator
var catLoc = "home"; //category indicator
var sub = 0;
var homeCounter = 0;
var tickerCounter = 0;
var hasEvent = 0;
var lastPromoCount = 0;
var homeSlideshow;
var homeSlideDir;
var promoSlide;
var subMenuInterval;
var containerWidth;
var subContentWidth;
var currentEventImg; //to be removed, crap script
var eventImgFlag; //to be removed, crap script
var subMenuArray = new Array(); //for event delegation
var subMenuPane = new Array();
var hpCtrlID = new Array();
var subMenuArrayID = new Array(); //for dom coloring
var mainMenuArrayID = new Array(); //for dom coloring
var gallery;
var currentKey;
var totalKeys;

function fileLinks() {
    var fileLink;
    if (document.getElementsByTagName('a')) {
        for (var i = 0; (fileLink = document.getElementsByTagName('a')[i]); i++) {
            if (fileLink.href.indexOf('.pdf') != -1) {
                fileLink.setAttribute('target', '_blank');
                fileLink.className = 'pdfLink';
            }
            if (fileLink.href.indexOf('.doc') != -1) {
                fileLink.setAttribute('target', '_blank');
                fileLink.className = 'docLink';
            }
            if (fileLink.href.indexOf('.zip') != -1) {
                fileLink.setAttribute('target', '_blank');
                fileLink.className = 'zipLink';
            }
        }
    }
}

function moveTo(target,xpoints){
	if(target == 'home-pane-container'){ //detector for homeCounter
		clearInterval(homeSlideshow);
		if(xpoints/760==0){
			homeCounter = 0;
		}else if(xpoints/760==-1){
			homeCounter = 1;
		}else if(xpoints/760==-2){
			homeCounter = 2;
		}
	}
	new Effect.Move(target, {x: xpoints, y:0, duration:1.0, 
							 delay:0.3, transition: Effect.Transitions.sinoidal, 
							 mode: 'absolute'});
}
function moveBy(target,xpoints){
	new Effect.Move(target, {x: xpoints, y:0, duration:1.0, 
							 delay:0.3, transition: Effect.Transitions.sinoidal});
}

function moveHomeImg(target,xpoints){
	var hp1 = document.getElementById('home-pane-container');
	if(homeSlideDir=="left"){
		xpoints = -(xpoints);
		homeCounter--;
	}else{
		homeCounter++;
	}
	updateCtrlColor('ctrl'+homeCounter);
	new Effect.Move(target, {x: xpoints, y:0, duration:1.0, delay:0.3, transition: Effect.Transitions.sinoidal,afterFinish: function(){ 
		if(YAHOO.util.Dom.getX(hp1)==-1285){ homeSlideDir = "left"; }
		if(YAHOO.util.Dom.getX(hp1)==235){ homeSlideDir = "right"; }				
		//alert(YAHOO.util.Dom.getX(hp1));				
	}}); return false;
}
function moveHomeImgLeft(){
	clearInterval(homeSlideshow);
	var hp1 = document.getElementById('home-pane-container');
	if(YAHOO.util.Dom.getX(hp1)!=235){
		homeCounter--;
		updateCtrlColor('ctrl'+homeCounter);
		moveBy(hp1,760);
	}
}
function moveHomeImgRight(){
	clearInterval(homeSlideshow);
	var hp1 = document.getElementById('home-pane-container');
	if(YAHOO.util.Dom.getX(hp1)!=-1285){
		
		homeCounter++;
		updateCtrlColor('ctrl'+homeCounter);
		moveBy(hp1,-760);
	}
}
function attachPreloader(){
	var subMenuPane = document.getElementById('pane-sub-menu');
	subMenuPane.innerHTML = subMenuPane.innerHTML + "<img src='art/loading.gif' id='preloader-wheel' class='pane-sub-menu-preloader' style='display:none;' />";
	new Effect.Appear('preloader-wheel',{afterFinish:function(){
		setTimeout(function(){ new Effect.Opacity('preloader-wheel',{from:1.0,to:0.0}); },3500);
	}})
}
function initPage(){
	fileLinks();
	homeAnimation();
	tickerAnimation();
	homeSlideshow = setInterval(function(){ moveHomeImg('home-pane-container',-760); },11000);
	updateCtrlColor('ctrl'+homeCounter);
	var tickerSlideshow = setInterval(function(){ tickerAnimation(); },11000);
	containerWidth = document.getElementById('container').offsetWidth;	
}
function eventAdd(objAttrib,handler,addFunction){
     
   if ((!document.all)&&(document.getElementById)){
       objAttrib.setAttribute(handler,addFunction);
   }    
   //workaround for IE 5.x
   if ((document.all)&&(document.getElementById)){
       objAttrib[handler]=new Function(addFunction);
   }
}


function tickerAnimation(){
	var promo = document.getElementById('promo');
	
	
	//alert(tickerItemTotal);
	if(tickerCounter >= tickerItemTotal){
		tickerCounter = 0;
	}
	var divId = document.getElementById("promo-img-"+tickerCounter);
	//alert(tickerCounter);
	if(divId == null){
		var div = document.createElement('div');
		div.id = "promo-img-"+tickerCounter;
		div.setAttribute("style","position:absolute;left:"+(0+tickerCounter+lastPromoCount)+"px;top:"+(0+tickerCounter+lastPromoCount)+"px;z-index:"+(55+tickerCounter)+";");
		promo.appendChild(div);
	
		var divId = document.getElementById("promo-img-"+tickerCounter);
		
		var link = document.createElement('a');
		link.setAttribute("href","javascript:void(0);");
		
		eventAdd(link,"onclick","navigateDirectly('Promotions','"+ticker[tickerCounter][1]+"')"); //there is a big bug in IE for this, function is created to separate IE & FF
		//alert (ticker[tickerCounter][1]);
		link.setAttribute("title","View promotion details");
		divId.appendChild(link);
		
		
		var img = document.createElement('img');
		link.appendChild(img);
		img.setAttribute("src","images/"+ticker[tickerCounter][2]+"");
		img.setAttribute("alt",ticker[tickerCounter][1]);
		YAHOO.util.Dom.addClass(img,'png');
		
		
		//lastPromoCount = tickerCounter;
		
		//alert(lastPromoCount);
	}else{
		//alert("sign");
		//alert(divId.getAttribute("style"));
		//alert(lastPromoCount);
		divId.setAttribute("style","position:absolute;left:0px;top:0px;z-index:"+(55+tickerCounter+lastPromoCount+lastPromoCount)+";")
	}
	tickerCounter++;
	lastPromoCount++;

	//promo.innerHTML = "<img src='images/"+ticker[tickerCounter][2]+"' alt='"+ticker[tickerCounter][1]+"' style='position:absolute;z-index:"+(55+tickerCounter)+";' />";
	/*new Effect.Appear("promo-img-"+tickerCounter,{duration:2.0, afterFinish:function(){
		new Effect.Opacity("promo-img-"+tickerCounter,{duration:2.0, delay:4.0});
	}});*/
}

function homeAnimation(){
	var imgHolder = document.getElementById('homepage-image');
	var img = document.createElement('div');
	imgHolder.appendChild(img);
	img.id = "home-pane-container";
	img = document.getElementById('home-pane-container');
	
	var text = document.getElementById('homepage-text');
	var hp1 = document.createElement('div');
	var hp1Content = "";
	var hpCtrlItems = "";
	hp1.id = "home-pane-1";
	
	img.appendChild(hp1);
	
	var hp1 = document.getElementById('home-pane-1');
	var hpCtrl = document.getElementById('homepage-anim-ctrl');
	
	hp1.style.position = "absolute";
	hp1.style.left = 0+"px";
	hp1.style.width = 760 * homeItemTotal+"px";
	hp1.style.height = "507px";

  var d=new Date()
	var month=new Array(12)
	month[0]="January - March"
	month[1]="January - March"
	month[2]="January - March"
	month[3]="April - June"
	month[4]="April - June"
	month[5]="July - October"
	month[6]="July - October"
	month[7]="July - October"
	month[8]="July - October"
	month[9]="October - December"
	month[10]="October - December"
	month[11]="October - December"

	text.innerHTML = "<h1>"+ month[d.getMonth()] +" Highlights</h1>";
	/*text.innerHTML = "<h1> June/July Highlights</h1>";*/
	hpCtrlItems = hpCtrlItems + "<img src='art/arrow_r.png' width='12' class='ctrl-arrow png2' onclick=\"moveHomeImgLeft();\" />";
	for(var i=0;i<=3-1;i++){
		//alert(i);
		if(i==0){
			hp1Content = hp1Content + "<img src='images/"+home[i]['image']+"' class='reflect rheight10 ropacity20' style='cursor:pointer;position:absolute;left:"+760*i+"px' onclick=\"navigateDirectly('Promotions','Gift-Line');\" />";
		}else if(i==1){
			hp1Content = hp1Content + "<img src='images/"+home[i]['image']+"' class='reflect rheight10 ropacity20' style='cursor:pointer;position:absolute;left:"+760*i+"px' onclick=\"navigateDirectly('Promotions','Its-a-Steak-Up');\" />";
		}else if(i==2){
			/*hp1Content = hp1Content + "<img src='images/"+home[i]['image']+"' class='reflect rheight10 ropacity20' style='cursor:pointer;position:absolute;left:"+760*i+"px' onclick=\"navigateDirectly('Promotions','Tasmanian-Treats');\" />";*/
			hp1Content = hp1Content + "<img src='images/"+home[i]['image']+"' class='reflect rheight10 ropacity20' style='cursor:pointer;position:absolute;left:"+760*i+"px' onclick=\"navigateDirectly('Promotions','Exclusive-Promotions');\" />";
		}/*else if(i==3){
			hp1Content = hp1Content + "<img src='images/"+home[i]['image']+"' class='reflect rheight10 ropacity20' style='cursor:pointer;position:absolute;left:"+760*i+"px' onclick=\"navigateDirectly('Promotions','Exclusive-Promotions');\" />";
		}*/
		
		hpCtrlItems = hpCtrlItems + "<div id='ctrl"+i+"' class='ctrl' onclick=\"moveTo('home-pane-container','-"+760*i+"');updateCtrlColor('ctrl"+i+"');\">&nbsp;</div>";
		hpCtrlID.push("ctrl"+i);
	}
	hpCtrlItems = hpCtrlItems + "<img src='art/arrow.png' width='12' class='ctrl-arrow png2' onclick=\"moveHomeImgRight();\" />";
	hp1.innerHTML = hp1Content;
	hpCtrl.innerHTML = hpCtrlItems;
	img.style.position = "absolute";
	img.style.left = 0;
	
}
function updateCtrlColor(to){
	YAHOO.util.Dom.setStyle(to,"backgroundColor","#30c3eb");
	YAHOO.util.Dom.setStyle(to,"color","#ffffff");
	for(i=0;i<hpCtrlID.length;i++){
		if(hpCtrlID[i]!=to){
			document.getElementById(hpCtrlID[i]).removeAttribute("style"); //for IE and FF
			document.getElementById(hpCtrlID[i]).style.backgroundColor = null; //for Safari
		}
	}
}
/*function promoTicker(){
	//new Ajax.PeriodicalUpdater('promo', 'include/promo.php', {asynchronous:true, frequency:5});
}*/

function updateTitle(loc){
	document.title = Url.decode(loc).replace(/\+/g,' ') + " | Whitebait and Kale Restaurant";
}
function updateMainMenuColor(to){
	YAHOO.util.Dom.setStyle(to,"color","#0082D6");
	for(i=0;i<mainMenuArrayID.length;i++){
		if(mainMenuArrayID[i]!=to){
			document.getElementById(mainMenuArrayID[i]).removeAttribute("style"); //for IE and FF
			document.getElementById(mainMenuArrayID[i]).style.color = null; //for Safari
		}
	}
}
function navigateTo(to){
	urchinTracker('/'+to);
	updateMainMenuColor(to);
	var current = loc;
	loc = to;
	catLoc = "content";
	updateTitle(loc);
	/*if(current=='homepage' && sub!=1){
		new Effect.Fade('homepage-text',{delay:1.0});
		moveTo('homepage-image','-717');
	}*/
	if(current == 'homepage'){
		clearInterval(homeSlideshow);
	}
	clearInterval(subMenuInterval);
	document.getElementById('wrapper').innerHTML = "<img src='art/loading.gif' id='wheel' />";
	new Ajax.Updater('wrapper','include/content.php?view='+loc,{asynchronous:true,evalScripts:true});
}

function navigateDirectly(to,item){
	urchinTracker('/'+to+'/'+item);
	item = item.replace(/\&/g,'%26');
	updateMainMenuColor(to);
	var current = loc;
	loc = to;
	if(catLoc == 'subcontent' && current == 'Promotions' && to != 'Menu'){
		proceedMove(item);
	}else{
		catLoc = "content";
		updateTitle(loc);
		if(current == 'homepage'){
			clearInterval(homeSlideshow);
		}
		clearInterval(subMenuInterval);
		document.getElementById('wrapper').innerHTML = "<img src='art/loading.gif' id='wheel' />";
		new Ajax.Updater('wrapper','include/content.php?view='+loc+'&item='+item+'&type=direct',{asynchronous:true,evalScripts:true});
	}
}

function proceedMove(item){
	//var item = ;
	//alert(item);
	YAHOO.util.Dom.setStyle(item,"color","#30c3eb");
	for(i=0;i<subMenuArrayID.length;i++){
		if(subMenuArrayID[i]!=item){
			document.getElementById(subMenuArrayID[i]).removeAttribute("style");
			document.getElementById(subMenuArrayID[i]).style.color = null;
		}
	}
	var ele2 = YAHOO.util.Dom.getElementsByClassName(item, 'div');
	//var xpos2 = YAHOO.util.Dom.getX(ele2);
	//alert(xpos2);
	var xpos="";
	/*if(item=="A-La-Carte-Lunch" || item=="Whitebait-%26-Kale-Story" || item=="Featured-Wine" || item=="Upcoming-Class" || item=="Events-Planning" || item=="Press-Reviews" || item=="Reservations" || item=="When-Jagos-Meet-Diva"){
		xpos = 0;
	}else if(item=="A-La-Carte-Dinner"){ //menu
		xpos = -823;
	}else if(item=="Sunday-Brunch-Menu"){
		xpos = -1919;
	}else if(item=="Deli-Menu"){
		xpos = -2740;
	}else if(item=="Special-Digestifs"){
		xpos = -3563;
	}else if(item=="Wine-List"){
		xpos = -4111;
	}else if(item=="Drink-List"){
		xpos = -4933;
	}
	
  if(item=="Lazy-Sundays"){
		xpos = -274;
	}else if(item=="Fresh-Catch"){
		xpos = -549;
	}
	
	if(item=="Food-Philosophy"){//rest deli
		xpos = -549;
	}else if(item=="Our-People"){
		xpos = -1097;
	}
	if(item=="Retail-Wine-List"){//wine
		xpos = -1095;
	}else if(item=="Wine-Tips"){
		xpos = -1371;
	}else if(item=="Wine-Events"){
		xpos = -1919;
	}else if(item=="McLaren"){
			xpos = -2467;
		}
	if(item=="Past-Classes"){//class
		xpos = -274;
	}else if(item=="Recipes"){
		xpos = -1097;
	}
	if(item=="Upcoming-Events"){//events
		xpos = -549;
	}else if(item=="Past-Events"){
		xpos = -823;
	}
	if(item=="Interviews"){//reviews
		xpos = -2193;
	}
	if(item=="Location"){ //contact us
		xpos = -274;
	}else if(item=="Daily-Hours"){
		xpos = -823;
	}else if(item=="Recruitment"){
		xpos = -1371;
	}*/
	var eleId = ele2[0].id;
	var eleNum = eleId.substr(4,2);
	var xpos=-((parseInt(eleNum) * 274)-274);
	xpos2 = xpos;
	if(catLoc == "content"){
		new Effect.Move('pane-wrapper', {x: -549, y:0, duration:1.0, 
						delay:2.0, transition: Effect.Transitions.sinoidal, 
						afterFinish:function(){
							moveTo("pane-container",xpos2);
							//moveBy("pane-container",(-(xpos2-438))+549);
							catLoc = "subcontent";
						},mode: 'absolute'});
	}else if(catLoc == "subcontent"){
		//if(YAHOO.util.Dom.getX("pane1")<986){
		moveTo("pane-container",xpos2);
		//moveBy("pane-container",(-(xpos2-438)));
		//}
	}
}
/*function navigateToSub(to){
	var current = loc;
	loc = to;
	if(current=='homepage'){
		new Effect.Fade('homepage-text',{delay:1.0});
		moveTo('homepage-image','-717');
	}
	document.getElementById('sub-pane-wrapper').innerHTML = "<img src='art/loading.gif' id='wheel' />";
	new Ajax.Updater('sub-pane-wrapper','include/subcontent.php?view='+loc,{asynchronous:true,evalScripts:true});
}*/


function displayFooterContent(cat){
	urchinTracker('/'+cat);
	clearInterval(homeSlideshow);
	clearInterval(promoSlide);
	clearInterval(subMenuInterval);
	updateMainMenuColor(cat);
	if(cat=='about'){
		cat2 = "About The Company";
	}else if(cat == 'press'){
		cat2 = "Press";
	}
	updateTitle(cat2);
	catLoc = "footer";
	sub = 1;
	document.getElementById('wrapper').innerHTML = "<img src='art/loading.gif' id='wheel' />";
	new Ajax.Updater('wrapper','include/subcontent.php?view='+cat+'&type=sub',{asynchronous:true,evalScripts:true});
}

function displayContent(cat){
	document.getElementById('sub-pane-wrapper').innerHTML = "<img src='art/loading.gif' id='wheel' />";
	new Ajax.Updater('sub-pane-wrapper','include/subcontent.php?view='+cat,{asynchronous:true,evalScripts:true});
}

function displayCtrl(element){
	new Effect.Opacity(element,{from:0.0, to:1.0, duration:0.3,afterFinish:function(){
		new Effect.Opacity(element,{from:1.0, to:0.0,delay:5.0,duration:0.3});
	}});
	return false;
}

function displaySubscribe(){
	new Effect.toggle('subscribe',"APPEAR");
}
function hideSubscribe(){
	new Effect.Fade('subscribe');
}
function scroll(element) {
  	var element = document.getElementById(element);
	var x = findPosX(element)-470;
	var y = findPosY(element);
	window.scrollTo(x, y);
}

function slidePicture(category,id){
	var fileID;
	var subPaneWrapper = document.getElementById('sub-pane-wrapper');
	var ele = document.createElement('div');
	ele.id = "viewer";
	subPaneWrapper.appendChild(ele);
	
	var viewer = document.getElementById('viewer');
	viewer.style.textAlign="center";
	new Effect.Move(viewer, {x: 548, y:0, duration:0.7, 
							 delay:0.3, transition: Effect.Transitions.sinoidal,
							 afterFinish:function(){
								viewer.innerHTML = "<table id='ev-info' cellspacing='5' cellpadding='5' border='0'><tr><td align='left'><div id='ev-img-name'></div></td><td align='right'><a href='#' onclick='sharePhoto()' style='color:#0082D6;'>share this photo</a></td></tr></table><div id='ev-img' style='width:520px;'></div><table cellspacing='5' cellpadding='5' border='0' id='ev-ctrls'><tr><td align='left'><a href='javascript:void(0);' onclick='prevGalleryImage();' class='viewer-ctrl'>< prev</a></td><td align='right'><a href='javascript:void(0);' onclick='nextGalleryImage();' class='viewer-ctrl'>next ></a></td></tr></table>Please contact <a href='mailto:marcom@whitebaitandkale.com' style='color:#0082D6;'>marcom@whitebaitandkale.com</a> to obtain hi-res photo.<br /><a href='javascript:void(0);' onclick='closeSlide();' style='color:#666666;text-decoration:underline;'>close window</a>";
								new Ajax.Request('include/slideshow.php',{asynchronous:true,method:'post',postBody:'cat='+category+'&id='+id,onSuccess: function(req){
									eval("gallery = " + req.responseText); //parse JSON
									currentKey = gallery.currentKey;
									totalKeys = gallery.totalKeys;
									document.getElementById('ev-img').innerHTML = gallery.images[currentKey];
									document.getElementById('ev-img-name').innerHTML = gallery.ids[currentKey];
									
								}});
							}});
	
	
	
	/*var slideshowScriptResponse = function(req){
		alert(req.responseText);
		document.getElementById('ev-img').innerHTML = req.responseText;
	}*/
}
function nextGalleryImage(){
	var key = currentKey + 1;
	
	if(key > totalKeys){
		key = 0;
	}
	currentKey = key;
	document.getElementById('ev-img').innerHTML = gallery.images[key];
	document.getElementById('ev-img-name').innerHTML = gallery.ids[key];

}
function prevGalleryImage(){
	var key = currentKey - 1;
	
	if(key < 0){
		key = totalKeys;
	}
	currentKey = key;
	document.getElementById('ev-img').innerHTML = gallery.images[key];
	document.getElementById('ev-img-name').innerHTML = gallery.ids[key];
	
}
function sharePhoto(){
	var viewer = document.getElementById('viewer');
	var ele = document.createElement('div');
	ele.id = "share";
	ele.style.display = "none";
	viewer.appendChild(ele);
	
	new Effect.BlindDown(ele,{afterFinish:function(){
		ele.innerHTML = "<h2 style='margin-top:120px;'>Send this photo to a friend</h2><form action='include/share.php' method='post' id='share-form' name='share-form' onsubmit=\"return checkWholeForm('share-form');\"><table cellpadding='5' cellspacing='5' id='share-table'><tr><td>Your name</td><td><input type='text' size='25' name='yourname' /></td></tr><tr><td>Your e-mail</td><td><input type='text' size='25' name='youremail' /></td></tr><tr><td>Friend&#39;s name</td><td><input type='text' size='25' name='friendname' /></td></tr><tr><td>Friend&#39;s e-mail</td><td><input type='text' size='25' name='friendemail' /></td></tr><tr><td colspan='2' align='center' style='text-align:center'><input type='hidden' name='filename' id='filename' value='' /><input type='submit' name='submitShare' value='Send!' /></td></tr></table></form><div id='share-response'></div><div id='close-share'><a href='javascript:void(0);' onclick='closeShare();'>[ close ]</a></div>"; //display the form

		document.getElementById('filename').value=document.getElementById('ev-img').innerHTML; //assign the filename
	}});
	
}
function closeSlide(){
	new Effect.Opacity('ev-img',{from:1.0, to:0.0, duration:0.4, afterFinish:function(){
		moveBy('viewer','-548');
	}});
}
function closeShare(){
	new Effect.BlindUp('share');
	$('share-response').innerHTML = "";
}
function submitForm(id){ 
	new Ajax.Updater('share-response','include/share.php',{asynchronous:true,method:'post',parameters:Form.serialize(id)});
}


//Form checking stuffs

function checkWholeForm(id){
	var theForm = document.getElementById(id);
	var why = "";
	if(id == "share-form"){
		why += checkYourname(theForm.yourname.value);
		why += checkYouremail(theForm.youremail.value);
		why += checkFriendname(theForm.friendname.value);
		why += checkFriendemail(theForm.friendemail.value);
	}
	if (why != "") {
        alert(why);
        return false;
    }else{
		submitForm(id);
		return false;
	}
}
function checkYouremail (strng) {
	var error="";
	if (strng == "") {
	    error = "Your e-mail address is required.\n";
	}

	var emailFilter=/^.+@.+\..{2,3}$/
	if (!(emailFilter.test(strng))) { 
	     error = "Invalid e-mail address.\n";
	}else {
	         var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
	           if (strng.match(illegalChars)) {
	            error = "The email address contains illegal characters.\n";
				}
	}
	return error;    
}
function checkFriendemail (strng) {
	var error="";
	if (strng == "") {
	    error = "Your friend's e-mail address is required.\n";
	}

	var emailFilter=/^.+@.+\..{2,3}$/
	if (!(emailFilter.test(strng))) { 
	     error = "Invalid e-mail address.\n";
	}else {
	         var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
	           if (strng.match(illegalChars)) {
	            error = "The email address contains illegal characters.\n";
				}
	}
	return error;    
}
function checkYourname(strng) {
	var error = "";
	if (strng.length == 0) {
	         error = "Your name is required.\n";
	}
	return error;	  
}
function checkFriendname(strng) {
	var error = "";
	if (strng.length == 0) {
	         error = "Friend's name is required.\n";
	}
	return error;	  
}
//window.onload=promoTicker;
