// Rollover and preload functions

function EmailtoFriend() { //v1.0
window.open('http://common.glennbeck.com/email/glennbeck/?title='+encodeURIComponent(getClickTitle())+'&url='+encodeURIComponent(getClickURL()),'click',"width=570,height=555,resizable=1,scrollbars=1");
	return false;
}

function getClickURL() {
        if (self.clickURL) return clickURL;
        return document.location.href;
}

function getClickTitle() {
	if (self.clickTitle) return clickTitle; 
	return clktitle=document.title; 
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}


function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// Layer function

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

// New window function

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

/**
 * adjusts calendar date and loads show URL for selected date
 * @param Object frm
 * @return void
 */
 
 function calendarFindShow(frm){
	if(!frm){
		return;
	}
	if(!frm.show_date.value){
		alert("Please click on calendar icon to select date");
		return;
	}
	
	var btrx_date = frm.show_date.value;
	try {
		var arrDate = btrx_date.split('.');
		if(!arrDate || arrDate.length==0){
			return;
		}
		var formatDate = arrDate[2] + '-' + arrDate[1] + '-' + arrDate[0];
		window.location = '/content/show/' + formatDate + '/';
	}
	catch(e){
		alert(e.toString());
		return;
	}
 }
 
 /**
  * formats and processes show date for the URL
  * @param Object frm
  * @return void
  */
 
 function processShowDate(frm){
 	try{
		var year = frm.elements['show_date[Y]'].selectedIndex == -1? '': frm.elements['show_date[Y]'].options[frm.elements['show_date[Y]'].selectedIndex].value;
		var day = frm.elements['show_date[d]'].selectedIndex == -1? '': frm.elements['show_date[d]'].options[frm.elements['show_date[d]'].selectedIndex].value;
		var month = frm.elements['show_date[m]'].selectedIndex == -1? '': frm.elements['show_date[m]'].options[frm.elements['show_date[m]'].selectedIndex].value;
		if(year && day && month){
			if(day<10){
				day = '0'+day;
			}
			if(month<10){
				month = '0'+month;
			}
			window.location = '/content/show/' + year + '-' + month + '-' + day + '/';
		}
		else{
			alert('ERROR: invalid date format');
			return false;
		}
		
	}
	catch(e){
		alert(e.toString());
		return false;
	}
 }
 
 /**
  * sets select values for date drop down menu
  * @return void
  */
  
  function setShowDateDefaults(){
	try{
  		document.date_select_form.elements['show_date[Y]'].options[0].text='Year';
		document.date_select_form.elements['show_date[d]'].options[0].text='Day';
		document.date_select_form.elements['show_date[m]'].options[0].text='Month';
	}
	catch(e){
		alert(e.toString());
		return;
	}
  }
  
  /**
   * enables newsletter box highlighting
   * @return void
   */
   
   function highlightNewsletterBox(){
	try{
		var reload_num = 20;
		var flash = false;
		var cookie = new GB_Cookie('gbnlflsh');
		var cookie_val = cookie.get();
		var exp_days = 365;
		if(cookie_val){
			if(cookie_val==reload_num){
				flash = true;
				cookie.set(1,exp_days);
			}
			if(cookie_val<reload_num){
				cookie_val++;
				cookie.set(cookie_val,exp_days);
			}
		}
		else{
			flash = true;
			cookie.set(1,exp_days);
		}
		if(flash){
			$('newsletter-box').style.backgroundImage='url(/images/common/header_newsletter_highlight.gif)';
		}
	}
	catch(e){
	}
   }
   
  /* COOKIE OBJECT BEGIN */
   
  /**
   * object to handle cookie
   * @param String name
   * @param String path
   */
   
  function GB_Cookie(name, path){
	this.name = name;
	if(path){
		this.path = path;
	}
	else{
		this.path = "/";	
	}
  }
  
  /**
   * modifier
   * @return void
   */
   
  GB_Cookie.prototype.set = function(value,days){
	  var date;
	  var expires = "";
	  if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	 }
	 document.cookie = this.name+"="+value+expires+"; path="+this.path;
  }
  
  /**
   * accessor
   * @return String
   */
  
  GB_Cookie.prototype.get = function(){
  	var nameEQ = this.name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return '';
  } 
  
  /**
   * erases cookie
   * @return void
   */
   
  GB_Cookie.prototype.erase = function(){
  	this.set(this.name,"",-1);
  }
  
  /* COOKIE OBJECT END */
  /* BEGIN AJAX CLASS */
 /**
  * simple ajax client class to make calls
  */
 
 function AjaxClient(url){
	this.url = url;
 }

 /**
  * makes call
  * @param String	parameters query string
  * @return void
  */

 AjaxClient.prototype.call = function(processResponseFunc){
	var myAjax = new Ajax.Request(
				 	this.url, 
					{
						method: 'get',
						onComplete: processResponseFunc,
						onFailure: this.reportError
					});
 }

 /**
  * reports errors
  * @return void
  */

 AjaxClient.prototype.reportError = function(){
	alert('Error occurred during the call');
 }
 /* END AJAX CLASS */
 
 //Global settings for Ajax class
  var ajaxClientGlobalHandlers = {
	onCreate: function(){
		$('ajax-monitor').update('Loading...');
			},
	onComplete: function() {
		if(Ajax.activeRequestCount == 0){
			$('ajax-monitor').hide();
		}
	}
 };
 
 //call back object to handle result for last update call
 var lastUpdateResponse = function(originalRequest){
	try{
		var container = $('last-update-box');
		container.update('<img src="http://media.glennbeck.com/images/common/spacer.gif" alt="" width="1" height="9" border="0" />' + originalRequest.responseText);
	}
	catch(e){
		return;
	}
 }
 
 //register responder for last update call
 Ajax.Responders.register(ajaxClientGlobalHandlers);
 
 //init ajax client
 var ajaxClient = new AjaxClient('/service/ajax/last_update');
 
 function initAjax(){
	ajaxClient.call(lastUpdateResponse);
 }