/*************************************************************/
/**  TRIBECA FILM FESTIVAL WEB SITE                         **/
/**  GLOBAL JAVASCRIPT FILE                                 **/
/**  DEVELOPER: GUY SHAHAR / OGILVY INTERACTIVE             **/
/**  DATE: 02-23-07                                         **/
/**                                                         **/
/**  NOTES: This file controls most of the behavior for     **/
/**         the Tribeca Film Festival website.              **/
/**                                                         **/
/*************************************************************/
function debug(statement){document.forms[0].debugfield.value = statement;}



/*************************************************************/
/**  PAGE FUNCTIONS  *****************************************/
/*************************************************************/

function PrintThisPage(){
	window.print();
}

function SendToFriend(){
	alert("Insert Send-to-Friend functionality here");
}



/*************************************************************/
/**  IMAGE ROLLOVERS  ****************************************/
/*************************************************************/

var news_on = new Image();
news_on.src = "image/but-about-on.jpg";
var news_off = new Image();
news_off.src = "image/but-about.jpg";

var t365_on = new Image();
t365_on.src = "image/but-tickets-on.jpg";
var t365_off = new Image();
t365_off.src = "image/but-tickets.jpg";

var tff_on = new Image();
tff_on.src = "image/but-film-on.jpg";
var tff_off = new Image();
tff_off.src = "image/but-film.jpg";

var tbd_on = new Image();
tbd_on.src = "image/but-media-on.jpg";
var tbd_off = new Image();
tbd_off.src = "image/but-media.jpg";

var store_on = new Image();
store_on.src = "image/but-sponsors-on.jpg";
var store_off = new Image();
store_off.src = "image/but-sponsors.jpg";

var con_on = new Image();
con_on.src = "image/but-contact-on.jpg";
var con_off = new Image();
con_off.src = "image/but-contact.jpg";

var snav_e_1_on = new Image();
snav_e_1_on.src = "image/but-tickets-buy-on.jpg";
var snav_e_1_off = new Image();
snav_e_1_off.src = "image/but-tickets-buy.jpg";

var snav_e_2_on = new Image();
snav_e_2_on.src = "image/but-tickets-glance-on.jpg";
var snav_e_2_off = new Image();
snav_e_2_off.src = "image/but-tickets-glance.jpg";

var snav_e_3_on = new Image();
snav_e_3_on.src = "image/but-tickets-special-on.jpg";
var snav_e_3_off = new Image();
snav_e_3_off.src = "image/but-tickets-special.jpg";

var snav_e_4_on = new Image();
snav_e_4_on.src = "image/but-tickets-screen-on.jpg";
var snav_e_4_off = new Image();
snav_e_4_off.src = "image/but-tickets-screen.jpg";

var snav_tff_1_on = new Image();
snav_tff_1_on.src = "image/but-film-guide-on.jpg";
var snav_tff_1_off = new Image();
snav_tff_1_off.src = "image/but-film-guide.jpg";

var snav_tff_2_on = new Image();
snav_tff_2_on.src = "image/but-film-jury-on.jpg";
var snav_tff_2_off = new Image();
snav_tff_2_off.src = "image/but-film-jury.jpg";

var snav_tbd_1_on = new Image();
snav_tbd_1_on.src = "image/but-media-photo-on.jpg";
var snav_tbd_1_off = new Image();
snav_tbd_1_off.src = "image/but-media-photo.jpg";

var snav_tbd_2_on = new Image();
snav_tbd_2_on.src = "image/but-media-press-on.jpg";
var snav_tbd_2_off = new Image();
snav_tbd_2_off.src = "image/but-media-press.jpg";


function roll_on(img){
//	debug(Menu.DefaultSubNav + ' - ' + img);
	if(Menu.DefaultSubNav && Menu.DefaultSubNav != img && Menu.DefaultNav != img){roll_off(Menu.DefaultSubNav);}
	document.images[img].src = eval(img + "_on.src");	
}
function roll_off(img){
	document.images[img].src = eval(img + "_off.src");
}



/*************************************************************/
/**  DHTML NAVIGATION MENU  **********************************/
/*************************************************************/

var Menu = new Object(); // Creation of Menu object to house all variables
Menu.Timeout = .5; // Delay (in seconds) before menu turns off after onmouseout
Menu.ON = true;
Menu.CurrentNav = false;
Menu.DefaultNav = false; // set to name of default navigation on the individual page (not in this .js file)
Menu.DefaultSubNav = false; // set to name of default sub-navigation on the individual page (not in this .js file)

function init_nav(){ // Initialize the nav
	if(Menu.DefaultNav){
		roll_on(Menu.DefaultNav);
		show('snav_'+Menu.DefaultNav);
		setZ('snav_' +Menu.DefaultNav, 50);
	}
	if(Menu.DefaultSubNav){
		roll_on(Menu.DefaultSubNav);
	}
}

function nav_on(what){ // Turn on nav and show sub nav
	if(Menu.CurrentNav && what != Menu.CurrentNav){ // if a previous nav is on, turn it off
		nav_off_now(true);
	}
	if(Menu.DefaultNav && Menu.DefaultNav != what){ // if there is a default nav, turn it off
		roll_off(Menu.DefaultNav);
	}
	show('snav_'+what); 
	roll_on(what);
	Menu.ON = true;
	Menu.CurrentNav = what;
}
function nav_off_now(force,nav){ // Turn off nav and subnav
	if(!nav){nav = Menu.CurrentNav;}
	if(Menu.ON && !force) return; 
	roll_off(nav);
	hide('snav_'+nav);
	Menu.ON = false;
	init_nav();
}
function nav_off(){ // timeout function before turning off the nav
	Menu.ON = false;
	setTimeout('nav_off_now()', Menu.Timeout*1000);
}
function show(what){document.getElementById(what).style.visibility = "visible";}
function hide(what){document.getElementById(what).style.visibility = "hidden";}
function setZ(what,z){document.getElementById(what).style.zIndex = z;}


/**
* additional function to load flash after the DOM for DHTML is defined
* @param string the url for the media (including the path to the XML and the ID of the asset
*/

function MM_validateForm() { //v4.0
  if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
      if (val) { nm=val.name; if ((val=val.value)!="") {
        if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
        } else if (test!='R') { num = parseFloat(val);
          if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
          if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
      } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
    } if (errors) alert('The following error(s) occurred:\n'+errors);
    document.MM_returnValue = (errors == '');
} }

 