/* 
================================================================================================================================ CREDITS
Copyright 	: Copyright (c) 2010 JPL & The Hershey Company. All Rights Reserved.
Author(s) 	: Larry Daughenbaugh - ldaughenbaugh@jplcreative.com
Date      	: 01/13/2010
Notes     	: JavaScript file for handling various events ... onLoad, onClick, etc
================================================================================================================================ CHANGE LOG
Date		Name			Desc
---			---				---
================================================================================================================================ BEGIN JAVASCRIPT
*/

/* ============================================================================================================================= MULTIPLE ONLOAD HANDLER */

// BUILD PAGE NAME FOR OMNITURE REPORTING (PAGE NAME BUILT BY buildPgName() FUNCTION)
var curr_pgName = null; 

var onLoadFunctions = new Array();
var iloadFunction = 0;

// Pass each function that needs to load
function addOnLoad(func) {
    onLoadFunctions[iloadFunction] = func;
    iloadFunction++;
}
// Loops through all of the functions that were added
function loadAllFunctions() {
    for(i=0; i < onLoadFunctions.length; i++) {
        eval(onLoadFunctions[i]+"()");
    }
}
// Load all of the functions that you've set
window.onload = loadAllFunctions;

/* ============================================================================================================================= CALL FUNCTIONS TO BE LOADED */

addOnLoad("load_flash");
addOnLoad("load_wall_ajax");
addOnLoad('fixKeyword');

/* ============================================================================================================================= LOAD FLASH FILES */

function load_flash() {
	// HERSHEY BRAND FOOTER
	if (document.getElementById('brand-footer') != null) {
		var flashvars = {
							bgColor: "0xFFFFFF", xmlPath: "/general/xml/brandbar.xml", logoPath: "/general/swf/logos/",
							curr_pgName: curr_pgName, inputDevAccount: "", inputLiveAccount: ""
						};
        var params = { wmode: "transparent" };
        var attributes = {};
		swfobject.embedSWF(
						   "/general/swf/brandbar.swf", "brand-footer", "920", "75", "9.0.0", 
						   "/celebrate/valentines/lib/swf/expressInstall.swf", flashvars, params, attributes
						   );
		if (document.getElementById('brand-footer-alt') != null) document.getElementById('brand-footer-alt').style.visibility = "visible";
	}
}

/* ============================================================================================================================= SET UP WALL AJAX EVENTS */

function load_wall_ajax() {
	var arr_wall_images = document.getElementsByTagName("a");

	// SET UP EVENT LISTENERS
	for (var i = 0; i < arr_wall_images.length; i++) { 
		if (arr_wall_images[i].getAttribute("rel") == "wall_image") {
			arr_wall_images[i].onmouseover = ajax_request;
		}
	}
}

/* ============================================================================================================================= OMNITURE TRACKING */

function buildPgName() {
	var curr_url = window.location.href.split("//");
	var path_array = curr_url[1].split("/");
	// create page name object
	build_pgName = new Object;
	build_pgName.domain = path_array[0];
	build_pgName.dir = '';
	// assign domain
	if ( build_pgName.domain.match(/hersheys/) ) { build_pgName.domain = "Hersheys"; }
	// build directory structure, append file name
	for ( i = 1; i <= path_array.length-1; i++ ) {
		if( path_array[i].indexOf("?") == -1) {
			build_pgName.dir = build_pgName.dir + ":" + path_array[i];
		}
		else {
			var tempSplit = path_array[i].split("?");
			build_pgName.dir = build_pgName.dir + ":" + tempSplit[0];
		}
	}
	// cut file extensions
	build_pgName.dir = build_pgName.dir.split(".");
	build_pgName.dir = build_pgName.dir[0]
	// if there is reference to "index" or "default", replace with "home"
	if ( build_pgName.dir.match(/index/) ) { build_pgName.dir = build_pgName.dir.replace(/index/, "home") }
	if ( build_pgName.dir.match(/default/) ) { build_pgName.dir = build_pgName.dir.replace(/default/, "home") }
	// if the last character is ":", replace with "home"
	if ( build_pgName.dir.charAt(build_pgName.dir.length-1) == ":" ) { build_pgName.dir = build_pgName.dir + "home" }
	// build page name structure
	curr_pgName = build_pgName.domain + build_pgName.dir;
}
buildPgName();

/* ============================================================================================================================= BASIC AJAX FUNCTIONS */

function ajax_request() {
	var page_request = false;
	var ajax_image = this.href.split("id=");
	var ajax_title = this.title;
	var image_container = "photo-preview";
	var title_container = "photo-title";
	var ajax_image_service = "/celebrate/valentines/lib/services/grab-wall-image.asp?id=";
	
	if (ajax_image[1] != "") {
		var image_to_open = ajax_image_service + ajax_image[1];
		
		// SET page_request BASED UPON WHICH BROWSER WE ARE IN (FIREFOX/MOZILLA/ETC OR MICROSOFT 
		if (window.XMLHttpRequest) {
			page_request = new XMLHttpRequest()
		} else if (window.ActiveXObject) { // if IE
			try { page_request = new ActiveXObject("Msxml2.XMLHTTP"); } 
			catch (e) {
				try { page_request = new ActiveXObject("Microsoft.XMLHTTP"); }
			catch (e) {}
			}
		} else {
			return false;
		}
		
		// SET UP LISTENER FOR READY STATE CHANGE 
		page_request.onreadystatechange = function() { load_content(page_request, image_container, title_container, ajax_title); }
		page_request.open('GET', image_to_open, true)
		page_request.send(null)

		function load_content(page_request, image_container, title_container, ajax_title) {
			var loading_content = '<p class="loading"><img src="/celebrate/valentines/lib/img/loading.gif" alt="Loading Image" /></p>';
			if (page_request.readyState == 4 && (page_request.status == 200 || window.location.href.indexOf("http") == -1)) {
				// DISPLAY CONTENT NOW THAT IT IS LOADED
				document.getElementById(title_container).innerHTML = ajax_title;
				document.getElementById(image_container).innerHTML = page_request.responseText;
			 } else {
				// DISPLAY LOADING CONTENT WHILE CONTENT LOADS (WANTED IT TO BE NOTHING)
				document.getElementById(image_container).innerHTML = loading_content;
			}
		}
	}
}
/* ============================================================================================================================= jQUERY FUNCTIONS (SLIDER) */

/* SLIDER SCRIPT USES THE jQUERY/jQUERY UI FRAMEWORKS AND IS BASED OFF OF A SCRIPT BY: MICHAEL KUEHL */
function handleSliderChange(e, ui) {
	var maxScroll = $("#content-scroll").attr("scrollWidth") - $("#content-scroll").width();
	$("#content-scroll").animate({scrollLeft: ui.value * (maxScroll / 100) }, 1000);
}

function handleSliderSlide(e, ui) {
	var maxScroll = $("#content-scroll").attr("scrollWidth") - $("#content-scroll").width();
	$("#content-scroll").attr({scrollLeft: ui.value * (maxScroll / 100) });
}

$(document).ready(function(){
	if (document.getElementById("content-slider") != null) {
		$("#content-slider").slider({ animate: true, change: handleSliderChange, slide: handleSliderSlide });
		var content_scroll_pos = Math.floor(($("#content-scroll").scrollLeft() / ($(".wall").width() - $("#content-scroll").width())) * 100);
		
		if ($("#content-scroll").scrollLeft() != 0) { $("#content-slider a").css("left",content_scroll_pos+"%"); }
	}
});

/*======= OTHER FUNCTIONS ========*/
function fixKeyword() {
	var keyword = document.getElementById('keyword');
	if (keyword) {
		keyword.onfocus = function() {
			if (this.value == 'Search') {
				this.value = '';
			}
		};
		keyword.onblur = function() {
			if (this.value == '') {
				this.value = 'Search';
			}
		};
	}
}

//commonly used
function addEvent(obj, evType, fn, useCapture){
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, useCapture);
		return true;
	} else if (obj.attachEvent){
		var r = obj.attachEvent('on'+evType, fn);
		return r;
	} else {
		//alert("Handler could not be attached");
	}
}
function GetObject(id) {
	if (document.getElementById(id)) {
		return document.getElementById(id);
	} else {
		//debug('Failed to getElementById on [' + id + ']');
		//debug('document.getElementById:' + document.getElementById);
		return false;
	}
}

function GetLightbox(id) {
	for (idx = 0; idx < valid.length; idx++) {
		if (valid[idx].content == id) {
			return valid[idx];
		}
	}
}

function ClearDefault(obj,strDefault) {
	if (obj.value == strDefault) {
		obj.value = '';
	}
}

function ResetDefault(obj,strDefault) {
	if (obj.value == '') {
		obj.value = strDefault;
	}
}