// use by document.onLoad; call anything that needs to be initialized here

function getQueryStringParams() {
	var params = new Array;
	
	var queryString = String (document.location).split ('?')[1];
	if (!queryString) return false;
	
	var pairs = queryString.split('&');
	
	for (var i = 0 ; i < pairs.length; i++) {
		var kv = pairs[i].split('=');
		params[kv[0]] = kv[1];
	}
	
	return params;
}


function initJavascript() {

	promoPopInInitialize();
	doNewHeaderLoginStatus();
	conditionalLoginStatus('article_comment_logged_in','article_comment_logged_out');
	conditionalLoginStatus('welcome_logged_in','welcome_logged_out');


	var params = getQueryStringParams();

	if(params['subscribe_food']) {
		promoPopInFoodSubscribe();
	}

	if(params['subscribe']) {
		if(params['custom_header']) {
			promoPopInSubscribePopIn(params['custom_header']);
		}
		else {
			promoPopInSubscribePopIn();
		}
	}


	if(document.location.href.indexOf('/gp/home/index.html') != -1) {	
		
		
		if(params['validate']) {
			promoPopInValidationCode = params['validate'];
			if(params['tickle']) {
				promoPopInValidatePopInTickle();
			}
			else {
				promoPopInValidatePopIn();
			}
		}

		if(params['validatereminder']) {
			promoPopInValidateReminderPopIn();
		}

		if(params['register']) {
			promoPopInShowRegisterPopIn();
		}

		if(params['share']) {
			promoPopInShare();
		}
	}
	
	if(params['utm_source'] == 'my_points') {
		setCookie('mode','my_points');
	}
	
	if(params['visit_id']){
		// alert('hello');
		setCookie('visit_id', params['visit_id'], null);
	}	

	if(0) {
		if(params['clktrk']){
			var trackpath = '/clicktrack-PAGE' + document.location.pathname + '/ID-' + escape(params['clktrk']);
			pageTracker._trackPageview(trackpath);
		}
	}
	
	if(!getCookie('preloaded')) {
		var preloaded = new Array;
		var img; 
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_home_off.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_home_over.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_home_on.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_activities_off.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_activities_over.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_activities_on.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_vacations_off.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_vacations_over.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_vacations_on.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_expertadvice_off.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_expertadvice_over.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_expertadvice_on.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_food_off.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_food_over.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_food_on.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_toysandgifts_off.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_toysandgifts_over.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_toysandgifts_on.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_video_off.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_video_over.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_video_on.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_columns_off.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_columns_over.jpg'; preloaded[preloaded.length] = img;
		img = new Image(); img.src = '/images/static-v3/wrapper/bg_columns_on.jpg'; preloaded[preloaded.length] = img;
		setCookie('preloaded',1);
	}
}

// ajax utilities

function setupAjax() {
	var http_request = null;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
	} 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('Browser unable to make AJAX request');
	}

	return http_request;
}

function getXmlFirstChildData(tag,xmldoc) {

	var node = xmldoc.getElementsByTagName(tag).item(0);

	if(node.firstChild) { 
		return unescape(node.firstChild.data);
	}
	else {
		return "";
	}
}

// web bug

function clickTrack(ref) {

return; // click track diabled

	var r	= Math.random();
	var url	= '/gp/clicktrack.xml?';
	url    += 'ref=' + ref;
	
	var http_request = setupAjax();
	http_request.onreadystatechange = function() { clickTrackDone(http_request); };
	http_request.open('GET', url, true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.send(null);
}

function clickTrackDone(http_request) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var xmldoc = http_request.responseXML;
			var status = getXmlFirstChildData('status', xmldoc);
			if(status == 'ok') {
				// just recording the hit
			}
		}
	}
}

// popin stuff

function openPopin(popinId, backgroundId) {
	// first, set the backgroundId div to cover the window with opacity set in pop-in.css

	var myWidth = 0, myHeight = 0;
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		myWidth = window.innerWidth;
		myHeight = window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		myWidth = document.body.clientWidth;
		myHeight = document.body.clientHeight;
	}
	//		window.alert( 'Width = ' + myWidth );
	//		window.alert( 'Height = ' + myHeight );

	var windowHeight = myHeight;
	var windowWidth = myWidth;
	var docHeight = document.body.offsetHeight;
	var docWidth = document.body.offsetWidth;

	var windowLeft = 0;
	var fullHeight = docHeight;
	var fullWidth  = docWidth;
	if (windowWidth > docWidth) {
		fullWidth = windowWidth;
		//need to start at window left, not document left
		windowLeft = Math.round( (docWidth - windowWidth)/2 );
	}
	if (windowHeight > docHeight) {
		fullHeight = windowHeight;
	}
	var backgroundNode = document.getElementById(backgroundId);
	backgroundNode.style.height = ""+fullHeight+"px";
	backgroundNode.style.width = ""+fullWidth+"px";
	backgroundNode.style.left = ""+windowLeft+"px";
	backgroundNode.style.visibility = "visible";
	// next, center and make the popin div visible
	var popinNode = document.getElementById(popinId);
	popinNode.style.display = "block";

	var popinHeight = popinNode.offsetHeight;
	var popinWidth = popinNode.offsetWidth;
	if (windowHeight-popinHeight < 0) {
		popinNode.style.top = "0px";
	} else {
		popinNode.style.top = ""+(windowHeight-popinHeight)/2+"px";
	}
	popinNode.style.left = ""+( (windowWidth-popinWidth)/2 + windowLeft)+"px";
	popinNode.style.position = "absolute";
	popinNode.style.visibility = "visible";
}

function closePopin(popinId, backgroundId) {
	var popinNode = document.getElementById(popinId);
	popinNode.style.visibility = "hidden";
	var backgroundNode = document.getElementById(backgroundId);
	backgroundNode.style.visibility = "hidden";
	popinNode.style.display = "none";
}

// media picker

var mediaPickerSelected 	= '';
var mediaPickerFieldID  	= '';
var mediaPickerMultiMode  	= '';
var mediaPickerMultiModeAlbum  	= '';
var mediaPickerMultiModePhoto  	= '';

function mediaPickerMulti(mode,album,photo,newcart) {

	mediaPickerMultiMode		= mode;
	mediaPickerMultiModeAlbum	= album;
	mediaPickerMultiModePhoto	= photo;
	mediaPickerFieldID			= '';

	var url = '/gp/mediapicker.incl'
	url += '?mode=' + mediaPickerMultiMode;
	url += '&album=' + mediaPickerMultiModeAlbum;
	url += '&photo=' + mediaPickerMultiModePhoto;
	url += '&newcart=' + newcart;
	
	// openPopin('media_picker_pane','popinBackground');
	
	promoPopInShowWindow('media_picker_pane','','',444,550,'','',true,'');

	var http_request = setupAjax();
	http_request.onreadystatechange = function() { mediaPickerPopulate(http_request); };
	http_request.open('GET', url, true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.send(null);
}


function mediaPicker(fieldID) {
	var url = '/gp/mediapicker.incl'

	mediaPickerMultiMode		= '';
	mediaPickerMultiModeAlbum	= '';
	mediaPickerMultiModePhoto	= '';
	
	if(fieldID) {
		mediaPickerFieldID			= fieldID;
	}
	
	// openPopin('media_picker_pane','popinBackground');
	promoPopInShowWindow('media_picker_pane','','',444,550,'','',true,'');

	var http_request = setupAjax();
	http_request.onreadystatechange = function() { mediaPickerPopulate(http_request); };
	http_request.open('GET', url, true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.send(null);
}

function mediaPickerPopulate(http_request) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var xmldoc = http_request.responseXML;
			var status = getXmlFirstChildData('status', xmldoc);
			if(status == 'ok') {
				var data = getXmlFirstChildData('data', xmldoc);
				var albums = getXmlFirstChildData('albums', xmldoc);
				var pane = document.getElementById('media_picker_pane');
				if(pane) {
					pane.innerHTML = data;

					if(albums) {
						var sel = albums.split(',');
						for(i = 0; i < sel.length; i++) {
							mediaPickerToggleAlbum(sel[i]);
						}
					}
				}
				else {
					alert('div media_picker undefined');
				}
				
			}
		}
		else {
			alert('error loading media picker ' + http_request.status);
		}
	}
}

function mediaPickerUploadVideo() {
	var url = '/gp/mediapickeruploadvideo.xml'
	var http_request = setupAjax();
	http_request.onreadystatechange = function() { mediaPickerPopulateUpload(http_request); };
	http_request.open('GET', url, true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.send(null);
}


function mediaPickerUploadPhoto() {
	var url = '/gp/mediapickeruploadphoto.xml'
	var http_request = setupAjax();
	http_request.onreadystatechange = function() { mediaPickerPopulateUpload(http_request); };
	http_request.open('GET', url, true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.send(null);
}

function mediaPickerPopulateUpload(http_request) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var xmldoc = http_request.responseXML;
			var status = getXmlFirstChildData('status', xmldoc);
			if(status == 'ok') {
				var data = getXmlFirstChildData('data', xmldoc);
				var pane = document.getElementById('media_picker_pane');
				if(pane) {
					pane.innerHTML = data;
				}
				else {
					alert('div media_picker undefined');
				}
				
			}
		}
		else {
			alert('error loading media picker ' + http_request.status);
		}
	}
}

function mediaPickerToggleAlbum(album) {

	obj=document.getElementById('mediaPickerAlbum-' + album);
	
	var expanded  = document.getElementById('expanded-' + album);
	var collapsed = document.getElementById('collapsed-' + album);
	
	if(obj) {
		if(obj.style.display == 'none') {
			obj.style.display = '';

			if(obj.innerHTML == 'loading...') {
			
				var url = '/gp/mediapickeralbum.xml?album=' + album;
				url += '&pane=mediaPickerAlbum-' + album;
				url += '&mode=' + mediaPickerMultiMode;
				url += '&photo=' + mediaPickerMultiModePhoto;
				
				var http_request = setupAjax();
				http_request.onreadystatechange = function() { mediaPickerPopulateAlbum(http_request); };
				http_request.open('GET', url, true);
				http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				http_request.send(null);
			}
			
			if(collapsed && expanded) {
				collapsed.style.display = 'none';
				expanded.style.display = '';
			}
		}
		else {
			obj.style.display = 'none';
			if(collapsed && expanded) {
				collapsed.style.display = '';
				expanded.style.display = 'none';
			}
		}
	}

}

function mediaPickerPopulateAlbum(http_request) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var xmldoc = http_request.responseXML;
			var status = getXmlFirstChildData('status', xmldoc);
			if(status == 'ok') {
				var pane = getXmlFirstChildData('pane', xmldoc);
				var data = getXmlFirstChildData('data', xmldoc);
				var selected = getXmlFirstChildData('selected', xmldoc);
				var album = getXmlFirstChildData('album', xmldoc);
				var pane  = document.getElementById(pane);
				if(pane) {
					pane.innerHTML = data;
					
					if(mediaPickerMultiModePhoto) {
						obj = document.getElementById('pick-photo-' + mediaPickerMultiModePhoto);
						if(obj) {
							obj.checked = true;
						}
					}

					// alert('reselecting ' + selected);

					if(selected) {
						var sel = selected.split(',');
						for(i = 0; i < sel.length; i++) {
							obj = document.getElementById('pick-album-' + album + '-photo-' + sel[i]);
							if(obj) {
								obj.checked = true;
							}
						}
					}
				}
				else {
					alert('div ' + pane + ' undefined');
				}
			}
			else {
				alert('error loading album data ' + status);
			}
		}
		else {
			alert('error loading album data ' + http_request.status);
		}
	}
}

function mediaPickerClick(row) {
	mediaPickerSelected = row;
}

function mediaPickerPick() {
	if(mediaPickerSelected) {
		field = document.getElementById(mediaPickerFieldID);
		if(field) {
			field.value = mediaPickerSelected;
			flashHandler('close','media_picker_pane');

			var thumb_div = document.getElementById('media_picker');
			if(thumb_div) {
				var markup = 'loading image';
				thumb_div.innerHTML = '<table cellpadding=0 cellspacing=0 border=0 width="100%" height="100%"><tr><td valign=center align=center>' + markup + '</td></tr></table>';
			}
						
			mediaPickerGetImageThumb(mediaPickerSelected,98,'');
		}
	}
}

function mediaPickerPickMulti() {
	var checkboxes = document.getElementsByTagName('input');
	flashHandler('close','media_picker_pane');
	
	var selected = '';
	
	for(i=0;i < checkboxes.length;i++){
		if(checkboxes[i].checked) {
			if(selected) {
				selected += ',';
			}
			selected += checkboxes[i].value;
		}
	}	

	document.location.href='/gp/photobox/print/' + mediaPickerMultiMode + '/index.html?selected=' + selected + '&album=' + mediaPickerMultiModeAlbum;
}

function mediaPickerTogglePhotosInAlbum(album) {

	var album_checkbox = document.getElementById('pick-' + album);
	
	if(album_checkbox) {
		state = album_checkbox.checked;
	
		var checkboxes = document.getElementsByName('pick-photos-album-' + album);
	
		for(i=0;i < checkboxes.length;i++){
			checkboxes[i].checked = state;
		}
	}
}

function mediaPickerGetImageThumb(row,width,css_class) {

	var http_request = setupAjax();

	http_request.onreadystatechange = function() { mediaPickerPopulateImageThumb(http_request); };
	http_request.open('POST', "/gp/ajaxupdate.xml", true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.send("proc=getimage&row=" + row + '&width=' + width + '&class=' + css_class);
}

function mediaPickerPopulateImageThumb(http_request) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
		
			var xmldoc = http_request.responseXML;
			
			var status = getXmlFirstChildData('status', xmldoc);
			
			if(status == 'ok') {
				var thumb = getXmlFirstChildData('thumb',xmldoc);
				var row = getXmlFirstChildData('record',xmldoc);
								
				var thumb_div = document.getElementById('media_picker');
				if(thumb_div) {
					thumb_div.innerHTML = thumb
				}
			}
			else {
				alert('Could not get photo info ' + status);
			}
		}
	}
}

function mediaPickerSaveVideo(path,thumb) {
	var request_body = "proc=save_videoegg";
	request_body += "&path=" + escape(path);
	request_body += "&thumb=" + escape(thumb);
	
	var http_request = setupAjax();
	http_request.onreadystatechange = function() { mediaPickerSaveVideoDone(http_request); };
	http_request.open('POST', "/gp/ajaxupdate.xml", true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.send(request_body);

}

function mediaPickerSaveVideoDone(http_request) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
		
			var xmldoc = http_request.responseXML;
			var status = getXmlFirstChildData('status', xmldoc);

			if(status == 'ok') {
				var row = getXmlFirstChildData('record', xmldoc);
				mediaPickerClick(row);
				mediaPickerPick();
			}
			else {
				alert('Could not get photo info ' + status);
			}
		}
	}
}

// video egg

function saveVideoEgg(path,thumb,cookie) {

	var request_body = "proc=save_videoegg";
	request_body 	+= "&path=" + escape(path);
	request_body 	+= "&thumb=" + escape(thumb);
	request_body 	+= "&cookie=" + escape(cookie);
	
	var http_request = setupAjax();
	http_request.onreadystatechange = function() { saveVideoEggDone(http_request); };
	http_request.open('POST', "/gp/ajaxupdate.xml", true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.send(request_body);

}

function saveVideoEggDone(http_request) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
		
			var xmldoc = http_request.responseXML;
			
			var status = getXmlFirstChildData('status', xmldoc);

			if(status == 'ok') {
				var row = getXmlFirstChildData('record', xmldoc);
//				document.location.href = '/gp/photobox/photo/' + row + '.html';
				document.location.href = '/gp/photobox/upload/videos/index.html?status=ok';
			}
			else {
				alert('Could not save video ' + status);
			}
		}
	}
}

// you tube

function saveVideoEmbed(cookie) {
	var path = document.videoembedform.embedurlfield.value;
	var type;
	
	var div = document.getElementById('upload_button');
	div.style.display = 'none';

	div = document.getElementById('upload_indicator');
	div.style.display = '';


	type = 'youtube';
	
	var request_body = "proc=save_video_embed";
	request_body += "&path=" + escape(path);
	request_body += "&type=" + escape(type);
	request_body += "&cookie=" + escape(cookie);
	
	var http_request = setupAjax();
	http_request.onreadystatechange = function() { saveVideoEmbedDone(http_request); };
	http_request.open('POST', "/gp/ajaxupdate.xml", true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.send(request_body);
}

function saveVideoEmbedDone(http_request) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
		
			var xmldoc = http_request.responseXML;
			
			var status = getXmlFirstChildData('status', xmldoc);

			if(status == 'ok') {
				var row    = getXmlFirstChildData('record', xmldoc);
//				document.location.href = '/gp/photobox/photo/' + row + '.html';
				document.location.href = '/gp/photobox/upload/embed/index.html?status=ok';

			}
			else {
				var error_div = document.getElementById('media_error_div');
				error_div.innerHTML = status;
			}
		}
	}
}


// menus

var menuCurrentSection ='';
var menuRevealTimer = null;
var menuHideTimer   = null;
var overMenu 		= '';
var pendingRevealMenu = '';
var pendingHideMenu = '';

function setSection(menu_id) {
	menuCurrentSection  = menu_id;
	elem = document.getElementById(menu_id);
	elem.className = 'main_nav_over';
}

function delayedRevealIt(menu_id) {
	var iframe = document.getElementById(menu_id + '_iframe')
	var menu   = document.getElementById(menu_id);
	
	menu.style.visibility = "visible";
	overMenu		= menu_id;
	pendingRevealMenu = '';
	menuRevealTimer = null;

//	alert('menu w' + menu.offsetWidth + 'x' + menu.offsetHeight);

	if(iframe) {
		iframe.style.width = menu.offsetWidth;
		iframe.style.height = menu.offsetHeight;
	}
	
//	alert('iframe w' + iframe.offsetWidth + 'x' + iframe.offsetHeight);
}

function delayedHideIt(menu_id) {
	document.getElementById(menu_id).style.visibility = "hidden"; 
	overMenu 		= '';
	pendingHideMenu = '';
	menuHideTimer   = null;
}

function revealIt(menu_id) {
	if(menuRevealTimer) {
		window.clearTimeout(menuRevealTimer);
	}
	
	if(menuHideTimer) {
		window.clearTimeout(menuHideTimer);
		if(menu_id != pendingHideMenu) { // dissmiss now if this is not our menu
			delayedHideIt(pendingHideMenu);
		}
	}
	
	if(overMenu != menu_id) {
		pendingRevealMenu = menu_id;
		menuRevealTimer = window.setTimeout("delayedRevealIt('" + menu_id + "')", 100);
	}
}

function hideIt(menu_id) {
	if(menuHideTimer) {
		window.clearTimeout(menuHideTimer);
	}
	
	if(menuRevealTimer) {
		window.clearTimeout(menuRevealTimer);
	}
	
	pendingHideMenu = menu_id;
	menuHideTimer = window.setTimeout("delayedHideIt('" + menu_id + "')", 50);
}

function changeClass(the_id,newClass)
{
	elem = document.getElementById(the_id);
	
	if(newClass == 'main_nav' && the_id == menuCurrentSection) {
		elem.className = 'main_nav_over';
	}
	else {
		elem.className = newClass;
	}
}

// input fields

function clickclear(thisfield, defaulttext) {
	if (thisfield.value == defaulttext) {
		thisfield.value = "";
	}
}

function clickrecall(thisfield, defaulttext) {
	if (thisfield.value == "") {
		thisfield.value = defaulttext;
	}
}

// cookies

function getCookieOld(name) {
	if (document.cookie.length > 0) {
 		start = document.cookie.indexOf(name + "=");
  		if (start != -1) { 
			start = start + name.length + 1;
			end = document.cookie.indexOf(";", start);
			if (end == -1) {
				end = document.cookie.length;
			}
			return unescape(document.cookie.substring(start, end));
		} 
	}
	return "";
}

function getCookie(name) {

	var value = '';

	if(document.cookie.length > 0) {
	
		var pairs = document.cookie.split(';');
		
		for(var i = 0; i < pairs.length; i++) {
			var kv = pairs[i].split('=');
			
			var n = kv[0].replace(/^\s+|\s+$/g, '');
			
			if(n == name) {
				if(kv.length > 1) {
					value =  unescape(kv[1].replace(/^\s+|\s+$/g, ''));
					
					return value;
				}
				else {
					return '';
				}
			}
		}
	}
	
	return '';
}

function setCookie(name,value,expiredays) {
	var exdate=new Date();
	exdate.setDate(exdate.getDate() + expiredays);
	document.cookie = name + "=" + escape(value) + ((expiredays==null) ? "" : ";expires=" + exdate.toGMTString()) + ';path=/';

	// alert("set cookie: " + document.cookie + " exp=" + exdate.toGMTString());
}

function deleteCookie(name) {
	setCookie(name, "", "");
}

// text size

function toggleTextSize() {
	var newsize;

	var size = getCookie('textsize');
	
	if(!size) { size = 'sm'; }
	
	if(size == 'sm') {
		newsize = 'med';
	}
	else if(size == 'med') {
		newsize = 'lg';
	}
	else if(size == 'lg') {
		newsize = 'sm';
	}
	
	setTextSize(newsize);
}

function restoreTextSize() {
	var size = getCookie('textsize');
	
	if(!size) { size = 'sm'; }
	
	document.write('<link href="/master-size-' + size + 'v2.css" rel="stylesheet" type="text/css">');
	
	alert('<link href="/master-size-' + size + 'v2.css" rel="stylesheet" type="text/css">');
}

function setTextSize(size) {

	if(!size) { size = 'sm'; }

	setCookie('textsize', size, 365);

	if(navigator.appVersion.match(/Konqueror|Safari|KHTML/)) {
		document.location.href = document.location.href;
	}
	else {

		var l = null;
		l = document.createElement("link");
		l.href = "/master-size-" + size + '.css';
		l.rel = "stylesheet";
		l.type = "text/css";
	
		document.body.appendChild(l);
	}
}

// header login / show status pane



function doNewHeaderLoginStatus() {
	var loggedIn = getCookie('account');

	if(loggedIn) {
	
		var name = document.getElementById('welcome_name');
		if(name) {
			name.innerHTML = getCookie('loginname');
		}
	
		var obj = document.getElementById('top_logged_in');
		if(obj) {
			obj.style.display = 'inline';
		}
		
		obj = document.getElementById('top_logged_out');
		if(obj) {
			obj.style.display = 'none';
		}
	}
	else {
		var obj = document.getElementById('top_logged_out');
		if(obj) {
			obj.style.display = 'inline';
		}

		obj = document.getElementById('top_logged_in');
		if(obj) {
			obj.style.display = 'none';
		}
	}
}


// conditional login panes

function conditionalCookiePane(true_pane, false_pane, cookie) {

	var c = getCookie(cookie);
	
//	alert(cookie + '=' + c);

	var pane = null;
	
	if(c) {
		pane = document.getElementById(true_pane);
		pane.style.display = '';
		pane = document.getElementById(false_pane);
		pane.style.display = 'none';
	}
	else {
		pane = document.getElementById(false_pane);
		pane.style.display = '';
		pane = document.getElementById(true_pane);
		pane.style.display = 'none';
	}
}

function conditionalLoginStatus(logged_in_pane, logged_out_pane) {

	if(document.getElementById(logged_in_pane) && document.getElementById(logged_out_pane)) {
		conditionalCookiePane(logged_in_pane, logged_out_pane, 'account');
	}
}

// nav sign-up promo

function navSignupPromo() {
	var did_newsletter  = getCookie('did_newsletter');
	if(!did_newsletter) {
		reveal = document.getElementById('newsletter_nav');
		if(reveal) {
			reveal.style.display = '';
		}
	}
}

// home sign-up promo

function homeSignupPromo(no_photobox) {
	var account     	= getCookie('account');
	var did_account 	= getCookie('did_account');
	var did_newsletter  = getCookie('did_newsletter');
	var did_sweeps  	= getCookie('did_sweeps');
	var reveal;

	// for debugging
	// did_account 		= '';
	// did_sweeps  		= '';
	// did_newsletter 	= '1';
	// account 			= '';
	
	var promo = document.getElementById('home_promo');

	if(account) {
		if(!no_photobox) {
			reveal = document.getElementById('home_photobox_slideshow');
			if(reveal) {
				reveal.style.display = '';
				mySlideShowLoad();
			}
			else {
				alert('could not find home_photobox_slideshow');
			}
	
			promo.style.height=278;
		}
	}
	else {
	
		if(!did_newsletter) {

			choose = Math.floor((Math.random() * 2) + 1);

			if(choose == 1) {
	
				reveal = document.getElementById('home_signup_newsletter');
				if(reveal) {
					reveal.style.display = '';
				}
				else {
					alert('could not find home_signup_newsletter');
				}
	
				promo.style.height=156;
			}
			
			if(choose == 2) {
	
				reveal = document.getElementById('home_signup_account_photobox');
				if(reveal) {
					reveal.style.display = '';
				}
				else {
					alert('could not find home_signup_account_photobox');
				}
				
				promo.style.height=195;
			}

		}
		else {
			reveal = document.getElementById('home_signup_account_photobox');
			if(reveal) {
				reveal.style.display = '';
			}
			else {
				alert('could not find home_signup_account_photobox');
			}
			
			promo.style.height=195;
		}
		

		/*
		var choose;

		if(did_newsletter) {
			if(!no_photobox) {
				choose = Math.floor((Math.random() * 3) + 1);
			}
			else {
				choose = Math.floor((Math.random() * 2) + 1); // skip flash on article page
			}
		}
		else {
			choose = Math.floor((Math.random() * 4) + 1);
			
			if(choose == 3 && no_photobox) { // kludge for article page
				choose = 4;
			}
		}
			
		// choose = 2;
		
		if(choose == 1) {
			reveal = document.getElementById('home_signup_account');
			if(reveal) {
				reveal.style.display = '';
			}
			else {
				alert('could not find home_signup_account');
			}
			
			promo.style.height=168;
		}

		if(choose == 2) {
			reveal = document.getElementById('home_signup_account_long');
			if(reveal) {
				reveal.style.display = '';
			}
			else {
				alert('could not find home_signup_account_long');
			}

			promo.style.height=300;
		}

		if(choose == 3) {
			reveal = document.getElementById('home_signup_account_flash');
			if(reveal) {
				reveal.style.left = 0;
			}
			else {
				alert('could not find home_signup_account_flash');
			}

			promo.style.height=277;
		}

		if(choose == 4) {
			reveal = document.getElementById('home_signup_newsletter');
			if(reveal) {
				reveal.style.display = '';
			}
			else {
				alert('could not find home_signup_newsletter');
			}

			promo.style.height=156;
		}
		
		*/
	}
}

// home photobox slide show

var mySlideShowCurrentSlide = 'sidebarmyphotos_0';
var mySlideShowIndex = 0;
var mySlideShowCount = 0;
var mySlideShowPlaying = null;
var mySlideShowMedia = null;

function mySlideShowLoad() {
	var http_request = setupAjax();
	http_request.onreadystatechange = function() { mySlideShowLoaded(http_request); };
	http_request.open('POST', "/gp/ajaxupdate.xml", true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.send("proc=sidebarmyphotos");
}

function mySlideShowLoaded(http_request) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var xmldoc = http_request.responseXML;
			var status = getXmlFirstChildData('status', xmldoc);
			if(status == 'ok') {
				var count = getXmlFirstChildData('count', xmldoc);
				var pane  = document.getElementById('sidebar_my_photos');
				if(count > 0) {
					var media = getXmlFirstChildData('media', xmldoc);
					var html  = getXmlFirstChildData('html', xmldoc);
					mySlideShowMedia = media.split(' ');
					pane.innerHTML = unescape(html);
					mySlideShowCount = count;
					setCookie('have_photos',count,365);

					var reveal = document.getElementById('home_photobox_slideshow');
					if(reveal) {
						reveal.style.display = '';
					}
					
					if(count > 1) {
						mySlideShowPlay();
					}
					else {
						div = document.getElementById('mySlideShowPausePlay');
						div.style.display = 'none';
						div = document.getElementById('mySlideShowPausePause');
						div.style.display = 'none';
					}
				}
			}
			else {
				alert('Could not get my photos ' + status);
			}
		}
	}
}

function mySlideShowClick() {
	var url = '/gp/photobox/photo/' + mySlideShowMedia[mySlideShowIndex] + '.html';
	window.parent.document.location.href = url;
}

function mySlideShowPausePlay() {

	if(mySlideShowCount > 1) {
		if(mySlideShowPlaying) {
			window.clearTimeout(mySlideShowPlaying);
			mySlideShowPlaying = null;
			
			div = document.getElementById('mySlideShowPausePause');
			div.style.display = 'none';
			div = document.getElementById('mySlideShowPausePlay');
			div.style.display = '';
		}
		else {
			mySlideShowPlay();
			div = document.getElementById('mySlideShowPausePlay');
			div.style.display = 'none';
			div = document.getElementById('mySlideShowPausePause');
			div.style.display = '';
		}
	}
}

function mySlideShowSetSlide(show_div,dontStop) {

	if(!dontStop) { 
		if(mySlideShowPlaying) {
			mySlideShowPausePlay();
		}
	}

	if(mySlideShowCurrentSlide) {
		Effect.Fade(mySlideShowCurrentSlide, {duration:.3});
	}
		
	mySlideShowCurrentSlide = "sidebarmyphotos_" + show_div;
	mySlideShowIndex = 	show_div;
	Effect.Appear(mySlideShowCurrentSlide, {duration:.3});
}

function mySlideShowNext() {
	if(mySlideShowPlaying) {
		window.clearTimeout(mySlideShowPlaying);
		mySlideShowPlaying = null;
	}

	mySlideShowIndex = mySlideShowIndex + 1;
	if(mySlideShowIndex > mySlideShowCount - 1) {
		mySlideShowIndex = 0;
	}

	mySlideShowSetSlide(mySlideShowIndex,1);

	mySlideShowPlaying = window.setTimeout("mySlideShowNext()", 7000);

}

function mySlideShowPlay() {
	mySlideShowPlaying = window.setTimeout("mySlideShowNext()", 7000);
}

// article rating

var ihavevoted = 0;

function saveRating(url,value,table_row) {
	var http_request = false;

	if(!ihavevoted++){
		if (window.XMLHttpRequest) { // Mozilla, Safari, ...
			http_request = new XMLHttpRequest();
			//if (http_request.overrideMimeType) {
				//http_request.overrideMimeType('text/xml');
				// See note below about this line
			//}
		} 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('Browser unable to make AJAX request');
			return false;
		}
		http_request.onreadystatechange = function() { ratingUpdateStars(http_request); };
		http_request.open('POST', url, true);
		http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		http_request.send("score=" + value + "&table_row=" + table_row);
	}
}

function ratingUpdateStars(http_request) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var xmldoc = http_request.responseXML;
			var score_node = xmldoc.getElementsByTagName('score').item(0);
	
			var score = score_node.firstChild.data;
			
			for(i = 1; i < 7; i++){
				if(score >= 1){
					document.getElementById('star_' + i).src = img_on;
					score = score -1;
				}
				else{
					if(score == 0){
						document.getElementById('star_' + i).src = img_off;
					}
					else{
						document.getElementById('star_' + i).src = img_half;
						score = 0;
					}
				}
			}
			
		} else {
			alert('Unable to save rating');
		}
	}
}

var saveStarSrc = null;
var img_over 	= null;
var img_on   	= null;
var img_off  	= null;
var img_half 	= null;			

function initRating(off,on,over,half) {
	img_over 	= over;
	img_on   	= on;
	img_off  	= off;
	img_half 	= half;			
}

function overStar(id) {
	var theStar = document.getElementById(id);
	saveStarSrc = theStar.src;
	theStar.src = img_over;
}

function outStar(id) {
	var theStar = document.getElementById(id);
	theStar.src = saveStarSrc;
}


function forceEmailBreak(str){
	var brokenStr="";
	ctr=0;
	for(i=0;i<str.length;i++){
		brokenStr+=str.charAt(i);
		ctr=ctr+1;
		if(ctr>28){
			brokenStr+='<br>';
			ctr=0;
		}
	}
	document.write(brokenStr);
}

function openNewsletter(url,width,height) {
		window.open(url, 'newsletter', 'scrollbars=yes,resizable=yes,toolbar=no,location=no,directories=no,menubar=no,width=' + width + ',height=' + height);
}

function findPosY(obj) {
	var curtop = 0;
	if(obj.offsetParent)
		while(1)
		{
		  curtop += obj.offsetTop;
		  if(!obj.offsetParent)
			break;
		  obj = obj.offsetParent;
		}
	else if(obj.y)
		curtop += obj.y;
	return curtop;
}


function newsletterModule(article,nl) {

	var url = "/gp/newsletter-module/" + article + ".incl";

	var http_request = setupAjax();
	http_request.onreadystatechange = function() { newsletterModuleDone(http_request); };
	http_request.open('POST', url, true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.send("nl=" + nl);
}

function newsletterModuleDone(http_request) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var markup = http_request.responseText;
			
			var div = document.getElementById('newsletter_module');
			if(div) {
				div.innerHTML = markup;
				
				var align = document.getElementById('article_bottom');
				if(align) {
					div.style.position = 'absolute';
					div.style.width=300;
					if(!is_ie6){
						div.style.top = findPosY(align) - 200;
					}
				}
			}
		}
	}
}


function checkDownload() {

	if(getCookie('nl')) {
		document.location.href="/gp/download/2008-ultimate-holiday-guide/index.html";
	}
	else {
		promoPopInShowWindow("account_popin","","",420,600,'',"/gp/popins/subscribe.html", false, 'giftguide subscribe');
	}
}
