String.prototype.trim = function() {
  return this.replace(/^\s+|\s+$/g, "");
};
var adjHeight = 20;
var pageTitle = "";
var titleLabelContainer = null;
var titleLabelElement = null;
var sideTest = false;
var homeTest = false;
var mailTest = false;
var ticker  = null;
var mail_re = /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/;
var showAd = true;  // default condition

// stickyNote callbacks
var edited = function(note) {/*alert("Edited note with id " + note.id + ", new text is: " + note.text);*/}
var created = function(note) {/*alert("Created note with id " + note.id + ", text is: " + note.text);*/}
var deleted = function(note) {
	if ($.cookies.test()) {
		var expireDate = new Date();
		expireDate.setDate(expireDate.getDate()+30);
		var cookieOptions = {
			expiresAt: expireDate
/*
			domain: window.location.host
			path: window.location.pathname.substr(0, window.location.pathname.lastIndexOf("/"))
*/
		}
		$.cookies.set("adsViewed",note.c_value,cookieOptions);
	}
	jQuery("#sticky-container").remove();
}
var moved = function(note) {/*alert("Moved note with id " + note.id + ", text is: " + note.text);*/}	
var resized = function(note) {/*alert("Resized note with id " + note.id + ", text is: " + note.text);*/}

$(document).ready(function(){
	sideTest = $(".sidetoneIssue").size();
	if (!iPhone) {
		if (!sideTest) {$("#main").css("height",($(window).height()-$("#header").outerHeight()-$("pageHeader").outerHeight()-adjHeight)+"px");}
		else {$("#main").css("height",($(window).height()-$("#header").height())+"px");}
	}
	if (window.location.toString().indexOf("mail.html")==-1) {
		var himg = new Array();
		titleLabelContainer = $("#navbar #set-mid");
		titleLabelElement = $("#navbar #set-mid span");
		pageTitle = $("body").attr("title").replace(": ",":\n\n");
		$(titleLabelContainer).attr("title",pageTitle);
		$(titleLabelElement).text(pageTitle);
		$("#navbar li a").each(function(index, Element){
			himg[index] = {
				idx: index,
				el: Element,
				li: $(Element).parent("li"),
				span: $(Element).find("span"),
				caption:   $(Element).text(),
				href:      $(Element).attr("href"),
				img_on:    (index>0) ? "themes/default/images/nav/btn_glow.png" : "themes/default/images/nav/hold_glow.png"
			};
			$(this).hover(
				function(e){
					$(titleLabelContainer).attr("title", himg[index].caption);
					$(titleLabelElement).text(himg[index].caption).toggleClass("roadmap");
					$(titleLabelElement).css("background", "#dcd4cc");
				},
				function(e){
					$(titleLabelContainer).attr("title",pageTitle);
					$(titleLabelElement).text(pageTitle).toggleClass("roadmap");
					$(titleLabelElement).css("background", "transparent");
			});
		});
	}
	homeTest = $("#greeting").size();
	if (homeTest) {
		$("#greeting a").each(function(index, Element){
			$(this).hover(
				function(e){
					var container = $("#navbar #set-mid");
					var target = $("#navbar #set-mid span");
					var href = $(this).attr("href");
					var idx = -1;
					if (href!==' ' && href!='' && href.indexOf("mailto:")==-1) {
						$.each(himg,function(ndx, value){
							if (value.href == href) {
								idx = ndx;
							}
						})
					}
					if (idx === -1) return;
					$("#navbar li.button:eq("+(idx)+")").toggleClass("active");
					$(titleLabelContainer).attr("title", himg[idx].caption);
					$(titleLabelElement).text(himg[idx].caption).toggleClass("roadmap");
				},
				function(e){
					var href = $(this).attr("href");
					var idx = -1;
					if (href!==' ' && href!='') {
						$.each(himg,function(ndx, value){
							if (value.href == href) {
								idx = ndx;
							}
						})
					}
					if (idx === -1) return;
					$("#navbar li.button:eq("+(idx)+")").toggleClass("active");
					$(titleLabelContainer).attr("title", pageTitle);
					$(titleLabelElement).text(pageTitle).toggleClass("roadmap");
				}
			);
		});
	}
	$(".toTop").css("display","none");
	$("#main").fadeIn(1000, function(){
		$(".menu").fadeIn(1000, function(){
			if (homeTest) {	// on home page only
				var seenAd = false; // default conditions
				if ($.cookies.test()) {
					var seenAd = $.cookies.get("adsViewed");
					if (seenAd == null) {
						//nop
					} else {
					}
				} else {
				}
				if (showAd) {
					$.ajaxSetup({
					   context: "#sticky-container>div"
					   ,dataType: "xml"
//					   ,type: "POST"
					   ,url: "data/specials.xml"
					   ,cache:false
					});
					$.ajax(
						{success:function(data, textStatus, XMLHttpRequest){
					 		var special = $(data).find("special");
					 		var item = special.find("item");
					 		var title = special.find("title");
							var content = special.find("content");
							var img_src = special.find("image");
							var img_h = special.find("image_h");
							var img_w = special.find("image_w");
							var expire_date = special.find("expire_date");
							if (expire_date) {
								var close = new Date(expire_date.text());
								var now = new Date();
								if (now >= close) {showAd = false;}
							}
							var options = {
								notes:[{"id":special.attr("id"),
									  "text":"<h2>"+title.text()+"</h2><p>"+content.text()+"</p>",
									  "c_value":item,
									  "pos_x": 0,
									  "pos_y": 0,
									  "width": 880,
									  "height": 400,
									  "el": null
									}]
								,resizable: true
								,controls: true
								,deleteCallback: deleted	
								,moveCallback: moved				
								,resizeCallback: resized
								,image: {src:img_src.text(),width:1*img_w.text(),height:1*img_h.text()}
								
							};
//							seenAd = -1;	// when testing
//							if (seenAd != options.notes[0].c_value) {
							if (showAd) {
								$("#greeting").stickyNotes(options);
							}
						}
					});
			 	}
			}
			/* set targets for external links */
			$("a").each(function(index, Element){
				var el = $(Element);
				if (el.attr("href") && el.attr("rel") && el.attr("rel") == "external")   
				 Element.target = "_blank";   
			});   
		});
	});
	$("#toTop").scrollToTop({speed:250,start:200,container:"#main"});

	mailTest = $("body.mail").size();
	if (mailTest) {
		$("input#sender").focus().select();

		$.each($.query.get(), function(key, value) {
			var k=key.toLowerCase();
			var v=value.toLowerCase();
			var target = null;
			var subject = "Re: ";
			switch(k) {
				case "r":
				case "to":
					switch(v) {
						case "jce":
						case "sjp":
						case "hp":
						case "editor":
						case "adsorder":
						case "webmaster":
							value = v;
							break;
						default:
							value = "jce";
							break;
					}
					target = $("#to");
					break;
				case "s":
				case "subject":
					target = $("#subject");
					break;
				case "m":
				case "message":
					target = $("#message");
					break;
				default:
					if (target==null) {
						target = $("#other");
					}
					break;
			}
			if (target && value) {
				target.val(value);
			}
		});
		$("#source").val(document.location.pathname);
		$("#datetime").val(new Date().toString());

		var mailForm = $("body.mail form");
		var sender  = $("#sender");
		var subject = $("#subject");
		var message = $("#message");
		var submit = $("body.mail :submit");
		var closer = $("body.mail #closer");

		sender.blur(function(e){
			submit.attr("disabled", "disabled");
			var valid=false;
			if (sender.val().trim().length==0) {
				if (!(sender.hasClass("error"))) sender.toggleClass("error");
			} else {
				sender.removeClass("error");
				valid = subject.val().trim().length>0 && message.val().trim().length>0;
			}
			submit.attr("disabled", (valid ? "" : "disabled"));
			return(valid);
		});
		subject.blur(function(e){
			submit.attr("disabled", "disabled");
			var valid=false;
			if(subject.val().trim().length==0) {
				if (!(subject.hasClass("error"))) subject.toggleClass("error");
			} else {
				subject.removeClass("error");
				valid = sender.val().trim().length>0 && message.val().trim().length>0;
			}
			submit.attr("disabled", (valid ? "" : "disabled"));
		});
		message.blur(function(e){
			submit.attr("disabled", "disabled");
			var valid=false;
			if(message.val().trim().length==0) {
				if (!(message.hasClass("error"))) message.toggleClass("error");
			} else {
				message.removeClass("error");
				valid = sender.val().trim().length>0 && subject.val().trim().length>0;
			}
			submit.attr("disabled", (valid ? "" : "disabled"));
		});
		message.keyup(function(e){
			if (message.val().trim().length>0) {
				submit.attr("disabled", "");
			} else {
				submit.attr("disabled", "disabled");
			}
		});
		closer.click(function(e){
			if (confirm("Are you sure you want to close this window and abandon this message?")) {
				window.close();
			} else {
				e.preventDefault();
				return false;
			}
		});
		mailForm.submit(function(e){
			var valid=true;
			var emess = "Error(s):\n\n";
			if (sender.val().trim().length==0 || !mail_re.test(sender.val().trim())) {
				valid = false;
				emess += "Your email address is missing or invalid\n\n";
			}
			if (subject.val().trim().length==0) {
				valid = false;
				emess += "You must enter a subject for your message\n\n";
			}
			if (message.val().trim().length==0) {
				valid = false;
				emess += "You must enter a message\n\n";
			}
			if (!valid) {
				return false;
			}
			return true;
		});
	}
});

$(window).resize(function(){
	if (!iPhone) {
		if (!sideTest) {$("#main").css("height",($(window).height()-$("#header").outerHeight()-$("pageHeader").outerHeight()-adjHeight)+"px");}
		else {$("#main").css("height",($(window).height()-$("#header").height())+"px");}
	}
});


