$("html").addClass("js");

// Multimedia AJAX pagination
var page_num = "";
var cur_url = ($.url.segment(1)) ? $.url.segment(1) : "null";

function multimedia_live_links (current_url) {
	$(".paginate li a").live("click", function() {
        $("#ajax_load").show();
        page_num = $(this).attr("rel");
        post_url = "/ajax/multimedia_thumbnails/" + page_num + "/";
        // $().scrollTo($(".multimedia_information"), 300);
        $.post(post_url, {url_title: current_url}, function(data){multimedia_pagination(data);}, "html");
        return false;
	});
}
function multimedia_pagination (data) {
    if (data) {
        $("#init_load").hide();
        $("div.multimedia_thumbnail").html(data);
        $("div.multimedia_thumbnail").show();
		$("#ajax_load").hide()
    };
    $("div.multimedia_thumbnail .paginate li a").each(function(index) {
        var link_url = this.href;                        
        page_num = ($.url.setUrl(link_url).segment(2)) ? $.url.setUrl(link_url).segment(2) : $.url.setUrl(link_url).segment(1);
    	this.href = "#";
    	this.rel = page_num;
    });
}

$(document).ready(function() {

	// Validate contact form.
	if ($("form.contact_us").length) {
		$("form.contact_us").validate();
	};


	// Embed field hover.
	if($("li.embed_box").length) {
		$("ul.embed_code").hide();
		$("li.embed_box").hover(
			function() {
				$("ul.embed_code").show();
				$("li.embed_box").addClass("hover")
			},
			function() {
				$("ul.embed_code").hide();		
				$("li.embed_box").removeClass("hover")
			}
		);
		$("#embed").focus( function(){ this.select(); });
	}


	// Validate research inquiry form.
	if ($("#research_inquiry").length) {
		var required_text = "All fields are required.";
		var bad_email = "Please enter a valid email address";
		$("#research_inquiry").validate({
			groups: {
				form_fields: "first_name last_name email phone comments company title"
			},
			errorElement: "p",
			errorPlacement: function(error, element) {
				$("p#required_note").after(error);
			},
			messages: {
				first_name: required_text,
				last_name: required_text,
				email: {
					required: required_text,
					email: bad_email
				},
				phone: required_text,
				comments: required_text,
				company: required_text,
				title: required_text
			}	
		});
	};

	/*
	 * jQuery Form Plugin
	 * version: 2.01 (10/31/2007)
	 * @requires jQuery v1.1 or later
	 *
	 * Examples at: http://malsup.com/jquery/form/
	 * Dual licensed under the MIT and GPL licenses:
	 *   http://www.opensource.org/licenses/mit-license.php
	 *   http://www.gnu.org/licenses/gpl.html
	 */

	(function($){$.fn.ajaxSubmit=function(options){if(typeof options=='function')options={success:options};options=$.extend({url:this.attr('action')||window.location.toString(),type:this.attr('method')||'GET'},options||{});var veto={};$.event.trigger('form.pre.serialize',[this,options,veto]);if(veto.veto)return this;var a=this.formToArray(options.semantic);if(options.data){for(var n in options.data)a.push({name:n,value:options.data[n]})}if(options.beforeSubmit&&options.beforeSubmit(a,this,options)===false)return this;$.event.trigger('form.submit.validate',[a,this,options,veto]);if(veto.veto)return this;var q=$.param(a);if(options.type.toUpperCase()=='GET'){options.url+=(options.url.indexOf('?')>=0?'&':'?')+q;options.data=null}else options.data=q;var $form=this,callbacks=[];if(options.resetForm)callbacks.push(function(){$form.resetForm()});if(options.clearForm)callbacks.push(function(){$form.clearForm()});if(!options.dataType&&options.target){var oldSuccess=options.success||function(){};callbacks.push(function(data){if(this.evalScripts)$(options.target).attr("innerHTML",data).evalScripts().each(oldSuccess,arguments);else $(options.target).html(data).each(oldSuccess,arguments)})}else if(options.success)callbacks.push(options.success);options.success=function(data,status){for(var i=0,max=callbacks.length;i<max;i++)callbacks[i](data,status,$form)};var files=$('input:file',this).fieldValue();var found=false;for(var j=0;j<files.length;j++)if(files[j])found=true;if(options.iframe||found){if($.browser.safari&&options.closeKeepAlive)$.get(options.closeKeepAlive,fileUpload);else fileUpload()}else $.ajax(options);$.event.trigger('form.submit.notify',[this,options]);return this;function fileUpload(){var form=$form[0];var opts=$.extend({},$.ajaxSettings,options);var id='jqFormIO'+$.fn.ajaxSubmit.counter++;var $io=$('<iframe id="'+id+'" name="'+id+'" />');var io=$io[0];var op8=$.browser.opera&&window.opera.version()<9;if($.browser.msie||op8)io.src='javascript:false;document.write("");';$io.css({position:'absolute',top:'-1000px',left:'-1000px'});var xhr={responseText:null,responseXML:null,status:0,statusText:'n/a',getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){}};var g=opts.global;if(g&&!$.active++)$.event.trigger("ajaxStart");if(g)$.event.trigger("ajaxSend",[xhr,opts]);var cbInvoked=0;var timedOut=0;setTimeout(function(){$io.appendTo('body');io.attachEvent?io.attachEvent('onload',cb):io.addEventListener('load',cb,false);var encAttr=form.encoding?'encoding':'enctype';var t=$form.attr('target');$form.attr({target:id,method:'POST',action:opts.url});form[encAttr]='multipart/form-data';if(opts.timeout)setTimeout(function(){timedOut=true;cb()},opts.timeout);form.submit();$form.attr('target',t)},10);function cb(){if(cbInvoked++)return;io.detachEvent?io.detachEvent('onload',cb):io.removeEventListener('load',cb,false);var ok=true;try{if(timedOut)throw'timeout';var data,doc;doc=io.contentWindow?io.contentWindow.document:io.contentDocument?io.contentDocument:io.document;xhr.responseText=doc.body?doc.body.innerHTML:null;xhr.responseXML=doc.XMLDocument?doc.XMLDocument:doc;if(opts.dataType=='json'||opts.dataType=='script'){var ta=doc.getElementsByTagName('textarea')[0];data=ta?ta.value:xhr.responseText;if(opts.dataType=='json')eval("data = "+data);else $.globalEval(data)}else if(opts.dataType=='xml'){data=xhr.responseXML;if(!data&&xhr.responseText!=null)data=toXml(xhr.responseText)}else{data=xhr.responseText}}catch(e){ok=false;$.handleError(opts,xhr,'error',e)}if(ok){opts.success(data,'success');if(g)$.event.trigger("ajaxSuccess",[xhr,opts])}if(g)$.event.trigger("ajaxComplete",[xhr,opts]);if(g&&!--$.active)$.event.trigger("ajaxStop");if(opts.complete)opts.complete(xhr,ok?'success':'error');setTimeout(function(){$io.remove();xhr.responseXML=null},100)};function toXml(s,doc){if(window.ActiveXObject){doc=new ActiveXObject('Microsoft.XMLDOM');doc.async='false';doc.loadXML(s)}else doc=(new DOMParser()).parseFromString(s,'text/xml');return(doc&&doc.documentElement&&doc.documentElement.tagName!='parsererror')?doc:null}}};$.fn.ajaxSubmit.counter=0;$.fn.ajaxForm=function(options){return this.ajaxFormUnbind().submit(submitHandler).each(function(){this.formPluginId=$.fn.ajaxForm.counter++;$.fn.ajaxForm.optionHash[this.formPluginId]=options;$(":submit,input:image",this).click(clickHandler)})};$.fn.ajaxForm.counter=1;$.fn.ajaxForm.optionHash={};function clickHandler(e){var $form=this.form;$form.clk=this;if(this.type=='image'){if(e.offsetX!=undefined){$form.clk_x=e.offsetX;$form.clk_y=e.offsetY}else if(typeof $.fn.offset=='function'){var offset=$(this).offset();$form.clk_x=e.pageX-offset.left;$form.clk_y=e.pageY-offset.top}else{$form.clk_x=e.pageX-this.offsetLeft;$form.clk_y=e.pageY-this.offsetTop}}setTimeout(function(){$form.clk=$form.clk_x=$form.clk_y=null},10)};function submitHandler(){var id=this.formPluginId;var options=$.fn.ajaxForm.optionHash[id];$(this).ajaxSubmit(options);return false};$.fn.ajaxFormUnbind=function(){this.unbind('submit',submitHandler);return this.each(function(){$(":submit,input:image",this).unbind('click',clickHandler)})};$.fn.formToArray=function(semantic){var a=[];if(this.length==0)return a;var form=this[0];var els=semantic?form.getElementsByTagName('*'):form.elements;if(!els)return a;for(var i=0,max=els.length;i<max;i++){var el=els[i];var n=el.name;if(!n)continue;if(semantic&&form.clk&&el.type=="image"){if(!el.disabled&&form.clk==el)a.push({name:n+'.x',value:form.clk_x},{name:n+'.y',value:form.clk_y});continue}var v=$.fieldValue(el,true);if(v&&v.constructor==Array){for(var j=0,jmax=v.length;j<jmax;j++)a.push({name:n,value:v[j]})}else if(v!==null&&typeof v!='undefined')a.push({name:n,value:v})}if(!semantic&&form.clk){var inputs=form.getElementsByTagName("input");for(var i=0,max=inputs.length;i<max;i++){var input=inputs[i];var n=input.name;if(n&&!input.disabled&&input.type=="image"&&form.clk==input)a.push({name:n+'.x',value:form.clk_x},{name:n+'.y',value:form.clk_y})}}return a};$.fn.formSerialize=function(semantic){return $.param(this.formToArray(semantic))};$.fn.fieldSerialize=function(successful){var a=[];this.each(function(){var n=this.name;if(!n)return;var v=$.fieldValue(this,successful);if(v&&v.constructor==Array){for(var i=0,max=v.length;i<max;i++)a.push({name:n,value:v[i]})}else if(v!==null&&typeof v!='undefined')a.push({name:this.name,value:v})});return $.param(a)};$.fn.fieldValue=function(successful){for(var val=[],i=0,max=this.length;i<max;i++){var el=this[i];var v=$.fieldValue(el,successful);if(v===null||typeof v=='undefined'||(v.constructor==Array&&!v.length))continue;v.constructor==Array?$.merge(val,v):val.push(v)}return val};$.fieldValue=function(el,successful){var n=el.name,t=el.type,tag=el.tagName.toLowerCase();if(typeof successful=='undefined')successful=true;if(successful&&(!n||el.disabled||t=='reset'||t=='button'||(t=='checkbox'||t=='radio')&&!el.checked||(t=='submit'||t=='image')&&el.form&&el.form.clk!=el||tag=='select'&&el.selectedIndex==-1))return null;if(tag=='select'){var index=el.selectedIndex;if(index<0)return null;var a=[],ops=el.options;var one=(t=='select-one');var max=(one?index+1:ops.length);for(var i=(one?index:0);i<max;i++){var op=ops[i];if(op.selected){var v=$.browser.msie&&!(op.attributes['value'].specified)?op.text:op.value;if(one)return v;a.push(v)}}return a}return el.value};$.fn.clearForm=function(){return this.each(function(){$('input,select,textarea',this).clearFields()})};$.fn.clearFields=$.fn.clearInputs=function(){return this.each(function(){var t=this.type,tag=this.tagName.toLowerCase();if(t=='text'||t=='password'||tag=='textarea')this.value='';else if(t=='checkbox'||t=='radio')this.checked=false;else if(tag=='select')this.selectedIndex=-1})};$.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=='function'||(typeof this.reset=='object'&&!this.reset.nodeType))this.reset()})};$.fn.enable=function(b){if(b==undefined)b=true;return this.each(function(){this.disabled=!b})};$.fn.select=function(select){if(select==undefined)select=true;return this.each(function(){var t=this.type;if(t=='checkbox'||t=='radio')this.checked=select;else if(this.tagName.toLowerCase()=='option'){var $sel=$(this).parent('select');if(select&&$sel[0]&&$sel[0].type=='select-one'){$sel.find('option').select(false)}this.selected=select}})}})(jQuery);

	// prepare the form when the DOM is ready 
	$(document).ready(function() { 
	    // bind form using 'ajaxForm' 
	    $('.lg-poll').each(function(index) {
	    	new_lg_poll($(this));
	    });
	});

	function new_lg_poll(el){
		$('form', el).ajaxForm({
			beforeSubmit: function(formArray, jqForm){
				if($('input:checked', jqForm).size() == 0){
					alert('Please select an answer before submitting the form');
					return false;
				}
				lg_poll_form = jqForm;
				$('#loading').fadeIn();
				$(el).addClass('loading');
			},
			success: function(data, status){
				data = $(data);
				$(lg_poll_form).parents('.lg-poll').replaceWith(data);
				new_lg_poll(data);
			},
			complete: function(){
				$('#loading').hide();
				$(el).removeClass('loading');
			},
			cache: false
		});
	}


	// Field labels.
	if($("input[type=text],textarea").length) {
		var blur_text = '#666';

		$("input[type=text],textarea").each(function(index) {
			$(this).data('title', $(this).attr('title'));
			$(this).data('def_color', $(this).css('color'));
			if ($(this).val() == "") {
				$(this).val($(this).data('title'));
				$(this).css('color', blur_text);
			};
			$(this)
				.focus(function() {
					if ($(this).val() == $(this).data('title')) {
						$(this)
							.val("")
							.css('color', $(this).data('def_color'));
					};
				})
				.blur(function() {
					if ($(this).val() == "") {
						$(this)
							.css('color', blur_text)
							.val($(this).data('title'));
					};
				});
		});

		$("form").submit(function() {
			$(this).find("input[type=text],textarea").each(function(index) {
				if ($(this).val() == $(this).data('title')) {
					$(this).val('');
				};
			});
		});	
	}


	// Video featurette hover.
	if($("div.video_overlay_1").length) {
		$("div.video_overlay_2").hide();
		$("div.video_overlay_3").hide();
		$("img#video_1").hover(
			function() { 
				$("div.video_overlay_1").show();
				$("div.video_overlay_2").hide();
				$("div.video_overlay_3").hide();
			},
			function() {  }
		);
		$("img#video_2").hover(
			function() { 
				$("div.video_overlay_2").show();
				$("div.video_overlay_1").hide();
				$("div.video_overlay_3").hide();
			},
			function() {  }
		);
		$("img#video_3").hover(
			function() { 
				$("div.video_overlay_3").show();
				$("div.video_overlay_1").hide();
				$("div.video_overlay_2").hide();
			},
			function() {  }
		);
	}


var $pdf_resources = $("div.resource_center li a[href*='.pdf']");
if ($pdf_resources.length) {
	$pdf_resources.each(function(index) {
		$(this).click(function() {
			$virt_url = "/virt/resources/";
			$virt_url += $(this).attr('rel');
			pageTracker._trackPageview($virt_url);
		});
	});
};

	// Share tools.
	if($("a.share").length) {
		$("a.share").each(function(){
			$(this).hover(
				function() {
					$(this).siblings("ul.share_list").show();
				},
				function() {
					$(this).siblings("ul.share_list").hide();		
				}
			);

			$(this).siblings("ul.share_list").hover(
				function() {
					$(this).show();
					$(this).addClass("hover");
					$(this).siblings("a.share").addClass("hover");
				},
				function() {
					$(this).hide();
					$(this).removeClass("hover");
					$(this).siblings("a.share").removeClass("hover");
				}
			);
		});
	}
	if ($("a.email").length) {
		$("a.email").hover(function() {
			$(".email_status_message").hide();
			var the_li = $(this).parent("li").find("li.email_article_li");
			the_li.show();
			the_li.hover(function() {
				$(this).parents("li").find("a.email").addClass('hover');
				$(this).show();
			}, function() {
				$(this).parents("li").find("a.email").removeClass('hover');
				$(this).hide();
			});
		}, function() {
			$(this).parent("li").find("li.email_article_li").hide();
		});
		
	};
	
	if ($("ul.email_article form.email_friend").length) {
		$("ul.email_article form.email_friend").submit(function() {
			$(this).find("img.emaiL_friend_load").show();
			var recipient_email = $(this).find("input[name='recipient_email']").val();
			var sender_email = $(this).find("input[name='sender_email']").val();
			var send_copy = ($(this).find("input[name='send_copy']").is(":checked")) ? "yes" : "no";
			var article_title = $(this).find("input[name='article_title']").val();
			var article_url = $(this).find("input[name='article_url']").val();
			var entry_id = $(this).find("input[name='entry_id']").val();
			var used_ul = $(this).parents("ul.email_article");
			$.post(
				'/ajax/email_friend',
				{recipient_email: recipient_email, sender_email: sender_email, send_copy: send_copy, article_title: article_title, article_url: article_url, entry_id: entry_id},
			 	function(data, status) {
					used_ul.find(".email_article_li").slideUp("medium");
					used_ul.find("img.emaiL_friend_load").hide();
					if (status == "success" && data.email_sent === true) {
						used_ul.find(".email_article_result.success").slideDown("medium").addClass("email_status_message");
					}
					else {
						used_ul.find(".email_article_result.fail").slideDown("medium").addClass("email_status_message");
					};
					setTimeout('$(".email_status_message").slideUp("medium")',5000);
				},
				"json"
			);	
			return false;
		});
	};


	// Register swfobject.
	if($("myFlashContent").length) {
		swfobject.registerObject("myFlashContent", "9.0.0", "{site_url}swf/expressInstall.swf");
	}


	// Submit poll on selection.
	if($("div.poll_featurette").length) {
		$("div.poll_featurette input:submit").hide();
		$("div.poll_featurette input:radio").change(function() {
			$(this).submit();
		});
	}


	// Commenting stuff.
	if($("#commentForm").length) {
		var required_text = "All fields are required.";
		var bad_email = "The email address you provided doesn't look valid. Please double check it.";
		var comment_val_rules = {
			groups: {
				commenting: "email name comment"
			},
			errorElement: "p",
			errorPlacement: function(error, element) {
				error.appendTo(element.parents("fieldset"));
			},
			messages: {
				email: {
					email: bad_email,
					required: required_text
				},
				comment: required_text,
				name: required_text
			}	
		};
		$(document).ready(function() {
			$("#commentForm form").validate(comment_val_rules);
			$("#replyForm form").validate(comment_val_rules);
			$("a.comment_reply").click(function() {
				$("div#replyForm").insertAfter($(this).parent("li")).show();
				$("#weever-parent-id").val($(this).attr("rel"));
				return false;
			});
		});
	}


	// Homepage dropdown hover.
	if($("ul.dropdown").length) {
		$("ul.dropdown").children().hover(
			function() { 
				$(this).children("ul").show();
				$(this).siblings().children("ul").hide();
				$(this).children("a").addClass("hover");
				$(this).siblings().children("a").removeClass("hover");
				$(this).children("span").addClass("hover");
				$(this).siblings().children("span").removeClass("hover");
			},
			function() {  }
		);
	}



});