// JavaScript Document

// DEFINE GLOBAL VARIABLES FOR ALL JS
var bankHolidays = {};
var orig_listing;
d = new Date();
var month = d.getMonth();
var year = d.getUTCFullYear();	
var orig_listing;
var count = 0;
var t_over;

// AJAX GET FUNCTION
function makeHttpRequest(url, callback_function, return_xml) { 
   var http_request = false; 
   
   if (window.XMLHttpRequest) { // Mozilla, Safari,... 
       http_request = new XMLHttpRequest(); 
       if (http_request.overrideMimeType) { 
          // http_request.overrideMimeType('text/xml'); 
       } 
   } else if (window.ActiveXObject) { // IE 
       try { 
           http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
       } catch (e) { 
           try { 
               http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
           } catch (e) {} 
       } 
   } 

   if (!http_request) { 
       alert('Unfortunately you browser doesn\'t support this feature.'); 
       return false; 
   } 
   
   http_request.onreadystatechange = function() { 
       if (http_request.readyState == 4) { 
           if (http_request.status == 200) { 
               if (return_xml) { 
                   eval(callback_function + '(http_request.responseXML)'); 
               } else { 
                   eval(callback_function + '(http_request.responseText)'); 
               } 
           } else { 
               alert('There was a problem with the request.(Code: ' + http_request.status + ')'); 
           } 
       } 
		 } 
   http_request.open('GET', url, true); 
   http_request.send(null); 
}

// AJAX POST FUNCTION
function makePostRequest(url, parameters, callback_function, return_xml) { // url, var1=test&var2=blah, update(), false
	var http_request = false;
	 if (window.XMLHttpRequest) { // Mozilla, Safari,... 
	http_request = new XMLHttpRequest(); 
	if (http_request.overrideMimeType) { 
	   //http_request.overrideMimeType('text/xml'); 
	} 
	 } else if (window.ActiveXObject) { // IE 
	try { 
	   http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
	} catch (e) { 
	   try { 
		   http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
	   } catch (e) {} 
	} 
	 }
		
	 if (!http_request) { 
			 alert('Unfortunately you browser doesn\'t support this feature.'); 
			 return false; 
	 } 
	
	  http_request.onreadystatechange = function() { 
	if (http_request.readyState == 4) { 
	   if (http_request.status == 200) { 
		   if (return_xml) { 
			   eval(callback_function + '(http_request.responseXML)'); 
		   } else { 
		   //alert(http_request.responseText);
		       eval(callback_function + '(http_request.responseText)'); 
		   } 
	   } else { 
		   alert('There was a problem with the request.(Code: ' + http_request.status + ')'); 
	   } 
	} 
	 }
	 
	 http_request.open('POST', url, true);
	 http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	 http_request.setRequestHeader("Content-length", parameters.length);
	 http_request.setRequestHeader("Connection", "close");
	 http_request.send(parameters);
	 
}

// FUNCTION TO URL ENCODE A STRING
function urlencode(str) {
	return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40');
}

// -------------------------------------------------------------INTERACTIVE CALENDAR-------------------------------------------------------

// FUCNTION TO REQUEST WHAT DAYS OF THE MONTH HAVE AN EVENT TAKING PLACE
function getDaysWithEvents(month, year){
	
	// ONLY ASSIGN THE VARIABLE ONCE TO HOLD THE MOUSE OUT HTML
	if(count == 0){
		orig_listing = document.getElementById('coe_listing').innerHTML;
	}	
	count = count +1;
	
	// MAKE AJAX REQUEST
	makePostRequest('/includes/ajax/days_with_events.php', 'month='+month+'&year='+year, 'updateCal', false);
}

// MOUSEOVER FUNCTION TO REQUEST EVENTS FOR A SPECIFIC DAY
function getDailyEvents(day, month, year){
	
	// MAKE AJAX REQUEST IF TIMEOUT HAS OCCURED
	t_over= setTimeout(function() { makePostRequest('/includes/ajax/daily_events.php', 'month='+month+'&year='+year+'&day='+day, 'updateCal', false) }, 185);// WORKING ONE
	
	
}

// MOUSEOUT FUNCTION TO DISPLAY THE FEATURED LISTINGS
function featuredListing(){
	
	// SET THE HTML OF THE COE_LISTING DIV BACK TO THE FEATURED EVENTS
	document.getElementById('coe_listing').innerHTML = orig_listing;
	
	// CLEAR THE TIMOUT FOR NEXT MOUSEOVER
	clearTimeout(t_over);

}

// ------------------------------------------------------------------FORMS------------------------------------------------------------

// FUNCTION TO SUBMIT SEND TO FRIEND FORM REQUEST
function send_to_friend(){
	
	// DEFINE VARIABLES AND ASSIGN THEM TO FORM VALUES
	var y_name = document.getElementById("Your_Name").value;
	var mess = document.getElementById("fMessage").value;
	var t_name = document.getElementById("To_Name").value;
	var t_email = document.getElementById("To_Email").value;
	var page_link = document.getElementById("link").value;
	
	// MAKE AJAX REQUEST
	makePostRequest('/includes/ajax/send_to_friend_email.php', 'Your_Name='+y_name+'&fMessage='+mess+'&To_Name='+t_name+'&To_Email='+t_email+'&link='+page_link, 'updateCal', false);
	
}

// FUNCTION TO SUBMIT SEND TO FRIEND FORM REQUEST
function email_to_myself(){
	
	// DEFINE VARIABLES AND ASSIGN THEM TO FORM VALUES
	var t_email = document.getElementById("To_Email_ETM").value;
	var page_link = document.getElementById("link_ETM").value;
	
	// MAKE AJAX REQUEST
	makePostRequest('/includes/ajax/email_to_myself_email.php', 'To_Email='+t_email+'&link='+page_link, 'updateCal', false);
	
}

// FUNCTION TO SUBMIT EMAIL EVENT DETAILS FORM REQUEST
function email_Event_Details(){
	
	// DEFINE VARIABLES AND ASSIGN THEM TO FORM VALUES
	var y_name = document.getElementById("Your_Name_EED").value;
	var mess = document.getElementById("fMessage_EED").value;
	var t_name = document.getElementById("To_Name_EED").value;
	var t_email = document.getElementById("To_Email_EED").value;
	var event_id = document.getElementById("event_id").value;
	
	// MAKE AJAX REQUEST
	makePostRequest('/includes/ajax/email_event_details_email.php', 'Your_Name='+y_name+'&fMessage='+mess+'&To_Name='+t_name+'&To_Email='+t_email+'&e_id='+event_id, 'updateCal', false);
	
}

// FUNCTION TO SUBMIT EMAIL PRESS DETAILS FORM REQUEST
function email_Press_Details(){
	
	// DEFINE VARIABLES AND ASSIGN THEM TO FORM VALUES
	var y_name = document.getElementById("Your_Name_EPD").value;
	var mess = document.getElementById("fMessage_EPD").value;
	var t_name = document.getElementById("To_Name_EPD").value;
	var t_email = document.getElementById("To_Email_EPD").value;
	var press_id = document.getElementById("press_id").value;
	var division_id = document.getElementById("division_id").value;
	
	// MAKE AJAX REQUEST
	makePostRequest('/includes/ajax/email_press_details_email.php', 'Your_Name='+y_name+'&fMessage='+mess+'&To_Name='+t_name+'&To_Email='+t_email+'&p_id='+press_id+'&d_id='+division_id, 'updateCal', false);
	
}

// ------------------------------------------------------------------COE SEARCH PAGE ------------------------------------------------

// FUNCTION TO NAVIGATE COE SEARCH RESULTS - NEXT
function coe_nav_next(queryString_results){
	
	// MAKE AJAX REQUEST
	makeHttpRequest('/includes/ajax/coe_results.php?pageNum_results='+queryString_results, 'updateCal', false);
	
}

// FUNCTION TO NAVIGATE COE SEARCH RESULTS - PREV
function coe_nav_prev(queryString_results){
	
	// MAKE AJAX REQUEST
	makeHttpRequest('/includes/ajax/coe_results.php?pageNum_results='+queryString_results, 'updateCal', false);
	
}

// FUNCTION TO NAVIGATE COE SEARCH RESULTS - NUMBERS
function coe_nav_numbers(i, queryString_results){
	
	// MAKE AJAX REQUEST
	makeHttpRequest('/includes/ajax/coe_results.php?pageNum_results='+(i-1)+queryString_results, 'updateCal', false);
	
}

// FUNCTION TO GET CALENDAR OF EVENTS TOP PICkS
function coe_top_picks(){
	
	// MAKE AJAX REQUEST
	makeHttpRequest('/includes/ajax/coe_results.php?t_pick=1', 'updateCal', false);
}


// FUNCTION TO GET CALENDAR OF EVENTS SEARCH RESULTS
function coe_results(){
	
	// DEFINE VARIABLES AND ASSIGN THEM TO FORM VALUES
	var coe_date1 = document.getElementById("coe_date1").value;
	var coe_date2 = document.getElementById("coe_date2").value;
	var coe_keyword = document.getElementById("keyword").value;
	var vt = document.getElementById("vt").value;
	var et = document.getElementById("et").value;
	var d_change = document.getElementById("d_change").value;
	
	// MAKE AJAX REQUEST
	makeHttpRequest('/includes/ajax/coe_results.php?t_pick=0&date='+coe_date1+'&date2='+coe_date2+'&keyword='+coe_keyword+'&vt='+vt+'&et='+et+'&d_change='+d_change, 'updateCal', false);
}

// FUNCTION TO GET CALENDAR OF EVENTS SEARCH RESULTS
function interact_day(ical, day){
	
	// MAKE AJAX REQUEST
	makeHttpRequest('/includes/ajax/coe_results.php?t_pick=0&date='+day+'&date2='+day+'&ical='+ical, 'updateCal', false);
}

function more_details(id, queryString){
	
	if(queryString == 'one_details'){
		document.getElementById('calResults').innerHTML='<div id='+id+'></div>';
	}
	// MAKE AJAX REQUEST
	makeHttpRequest('/includes/ajax/coe_details.php?id='+id+'&query='+urlencode(queryString), 'updateCal', false);
	
}

// -----------------------------------------------------PRESS ROOM-------------------------------------------------
function press_details(id,status){
	
	// MAKE AJAX REQUEST
	makeHttpRequest('/includes/ajax/press_details.php?id='+id+'&status='+status, 'updateCal', false);
}
function press_hot_details(id,status){
	
	// MAKE AJAX REQUEST
	makeHttpRequest('/includes/ajax/press_details.php?id='+id+'&status='+status+'&hot=1', 'updateCal', false);
}
function press_results(did,status,limit){
	
	// MAKE AJAX REQUEST
	makeHttpRequest('/includes/ajax/press_results.php?did='+did+'&status='+status+'&limit='+limit, 'updateCal', false);
}
// -----------------------------------------------------RESPONSE FUNCTION----------------------------------------

// FUNCTION TO EVALUATE MY AJAX RESPONSES
function updateCal(ajaxResponse){
	
	//alert(ajaxResponse);
	eval(ajaxResponse);
	
}