//<![CDATA[

var contactForm_config = 
{
	container : "#contact"	
};
var friendForm_config = 
{
	container : "#contact",
	form : "#friend_share"
};

$(function(){ 
/* This script fetches and process the contact form for blog entries */
	attachContactForm("a[rel*='cta']");	
	
/* This script fetches and process the contact form for tabbed contact info */
	if($("a[rel*='contact']").length) { $("a[rel*='contact']").click(function(e){
		var url = getUrlVars($(this).attr("href"));
		var contact = "";
		if (url.length == 1 && url[0].substring(0,7) == "mailto:") {
			contact = $(this).attr("href").replace("mailto:","");		
		} else {
			if (url['contact']) contact = url['contact'];
			else contact = url['author'];
		}
		var success = false;
		var self  = $(this);

		$.ajax({
		   type: "POST",
		   url: "/scripts/ajax/contact_form.php",
		   data: "contact="+contact+"&mode=contactoptions",
		   async: false,
		   success: function(msg){
				if (msg!="") {
				$(msg).appendTo('body');
				if (!$("#q_title").length) {
					$(contactForm_config.container+" h2").append("<span id='q_title'></span>");
				}
				if (url['title'] == undefined)  $("#q_title").empty().append($("h1").text());
				else $("#q_title").empty().append(url['title']);
				
				if (!$("input[name='bid']").length) {
					$(contactForm_config.container + " form").append("<input type='hidden' name='bid' value='"+url['bid']+"' />")
										.append("<input type='hidden' name='eid' value='"+url['eid']+"' />");
				}
				$(contactForm_config.container)
					.modal({close: false, onClose: closeModal, onOpen: openModal, persist: false, onShow: onshowContact, position: [1,]});
				success = true;
				var hash = window.location.hash ? window.location.hash : "#emailTab";
				attachContactForm(".buffer a[rel='cta']");
				_gaq.push(['_trackPageview', '/contact/'+hash]);
				$("#tab-container div a").click(function(e){ _gaq.push(['_trackEvent', 'Contact Tab Links', $(this).attr("href"), window.location.href]); return true; });
					} 
		   },
		   error: function(obj,text,error) {   }
		 });
		return !success;
	});	}


/* This script fetches and process the email a friend form */
	if($("a.email_a_friend").length) {
		$("a.email_a_friend").click(function(e){
			var url = getUrlVars($(this).attr("href"));
			
			var success = true;
			var self  = $(this);


			$("body").append("<div id='modal'><iframe src='//www.indium.com/scripts/blogs/email_a_friend_form.php?u="+url['u']+"&t="+url['t']+"' width='100%' height='550px' scrolling='no' id='modal_email' frameborder='0' marginwidth='0' marginheight='0' hspace='0'></iframe></div>");
			$("#modal_email").modal({close: false, onClose: closeModal, onOpen: openModal, persist: false, onShow: onShowModal, position: [1,]});
			
			/*$.ajax({
			   type: "POST",
			   url: "/scripts/ajax/email_a_friend_form.php",
			   data: "t="+url['t']+"&u="+url['u'],
			   async: false,
			   success: function(msg){
					if (msg!="") {
					$(msg).appendTo('body');
					$(friendForm_config.container+" form").append("<input type='hidden' name='t' value='"+url['t']+"' />")
											.append("<input type='hidden' name='u' value='"+url['u']+"' />");
					$(friendForm_config.container)
					.append($('<p class="close"><span class="simplemodal-close">Close</span></p>'))
					.modal({close: false, onClose: closeModal, onOpen: openModal, persist: false, onShow: onshowFriend, position: [1,]});
					success = true;
					} 
			   },
			   error: function(obj,text,error) {  }
			 });*/
			return !success;
		});
	}
/* This script link tracks */
	if($("a.track").length) {
		$("a.track").click(function(e){
			var href=$(this).attr("href");
			$.ajax({
			   type: "POST",
			   url: "/scripts/ajax/click_process.php",
			   data: "href="+href,
			   async: true
				   });
			return true;
		});
	}
});

/* This script fetches and process the vCard explanation */
	if($("a[rel*='vcard-explain']") && $("a[rel*='vcard-explain']").length) { $("a[rel*='vcard-explain']").click(function(e){
		var success = false;
		$.ajax({
		   type: "POST",
		   url: "/scripts/ajax/explain_vcard.php",
		   data: "",
		   async: true,
		   success: function(msg){
				$(msg).appendTo('body');
				$(contactForm_config.container)
					.modal({close: false, onClose: closeModal, onOpen: openModal, persist: false, onShow: onshowContact, position: [1,]});
				success = true;
				_gaq.push(['_trackPageview', '/contact/vcard-explaination']); 
		   },
		   error: function(obj,text,error) {   }
		 });
		return !success;
	});	}



function closeModal (dialog) {	
		dialog.data.fadeOut('slow', function () {
				dialog.container.fadeOut('slow', function () {
						dialog.overlay.slideUp('slow', function () { 
								$.modal.close(); 
								$("#modal, #contact").remove(); 
								$("#contact_form_main").remove(); 
								var cta = $("a[rel='cta']");
								if (cta.length) {
									cta.unbind('click');
									attachContactForm("a[rel='cta']");
								}
						});
				});
		});
}
function openModal (dialog) {	dialog.container.append("<p class='close'><span class='simplemodal-close'>Close</span></p>"); 
	if($('#tab-container').length){ 
		$('#tab-container').easytabs().bind("easytabs:after",function(){ 
					_gaq.push(['_trackPageview', '/contact/'+window.location.hash]);
		})
		
	} 
	dialog.overlay.fadeIn('slow', function () {dialog.container.fadeIn('slow', function () {dialog.data.hide().slideDown('slow');});	});}
function onShowModal (dialog) {
	$(document).keypress(function(e){
	  var key  = (window.event) ?  event.keyCode : e.keyCode;
 	 if( key == 27 ) $.modal.close();
	});
	
}

/* This script fetches and process the contact form for blog entries */
function attachContactForm(selector){
	var links = $(selector);
	if (links.length) { links.each(function(){ $(this).click(function(e){
		var success = false;
		var self  = $(this);//.clone(true);
		var linkhref = self.attr("href");
		
		var url = getUrlVars(linkhref);
		var contact = "";
		if (linkhref.substring(0,7) == "mailto:") {
			linkhref = linkhref.replace("mailto:","");
			contact = linkhref;
			if (linkhref.indexOf("?") != -1)
				contact = linkhref.substring(0,linkhref.indexOf("?"));
		} else {
			if (url['contact']) contact = url['contact'];
			else contact = url['author'];
		}
		

		$.ajax({
		   type: "POST",
		   url: "/scripts/ajax/contact_form.php",
		   data: "contact="+contact+"&mode="+url['mode'],
		   async: false,
		   success: function(msg){
				if (msg!="") {
				  if (self.parents('#simplemodal-container').length) {
				  	$("#contact").fadeOut('fast',function(){$("#contact").empty().append($(msg).children()).fadeIn(); onshowContact(); });
									  
				  } else $(msg).appendTo('body');
				if (!$("#q_title").length) {
					$(contactForm_config.container+" h2").append("<span id='q_title'></span>");
				}
				if (url['title'] == undefined && url['subject'] == undefined)  $("#q_title").empty().append($("h1").text());
				else $("#q_title").empty().append(url['title'] ? url['title'] : url['subject']);
				if (!$("input[name='bid']").length) {
					$(contactForm_config.container + " form").append("<input type='hidden' name='bid' value='"+url['bid']+"' />")
										.append("<input type='hidden' name='eid' value='"+url['eid']+"' />");
				}
				if (url['subject']) {
					$(contactForm_config.container + " form").append("<input type='hidden' name='subject' value='"+url['subject']+"' />")
				}
				if (!self.parents('#simplemodal-container').length) {
					$(contactForm_config.container)
					.modal({close: false, onClose: closeModal, onOpen: openModal, persist: false, onShow: onshowContact, position: [1,]});
					}
				success = true;
				} 
		   },
		   error: function(obj,text,error) {   }
		 });
		return !success;
	}); });	}
	
}


/*function closeModal (dialog) {	dialog.data.fadeOut('slow', function () {dialog.container.fadeOut('slow', function () {dialog.overlay.slideUp('slow', function () {$.modal.close();$('.close').remove();$(contactForm_config.container).remove();});});	});}
function openModal (dialog) {	dialog.overlay.fadeIn('slow', function () {dialog.container.fadeIn('slow', function () {dialog.data.hide().slideDown('slow');});	});}
*/

/*****************************************
 Take Care of Processing the Contact Form
*****************************************/
function onshowContact (dialog) {
	$(document).keypress(function(e){
	  var key  = (window.event) ?  event.keyCode : e.keyCode;
 	 if( key == 27 ) $.modal.close();
	});
	if($(contactForm_config.container).length) {
		
		
		/* Bind field checking events */		
		$(contactForm_config.container+" input[name='org'], #entry_contact input[name='type'], #entry_contact input[name='inquiry']")
			.blur(function(){checkField($(this),isCompleted,"Field Required.")});
		$(contactForm_config.container+" input[name='name']")
			.blur(function(){checkField($(this),isValidName,"Full Name Required.")});
		setOptional($(contactForm_config.container+" input[name='phone']"));
		$(contactForm_config.container+" select[name='contact_how']").change(function(){
			var phone = $(contactForm_config.container+" input[name='phone']");
			var email = $(contactForm_config.container+" input[name='email']");
			if ($(this).val() == "email") {
				clearOptional(email);	setOptional(phone);
			} else {
				clearOptional(phone);
				setOptional(email);
			}
		});
		
		/* Do fancy stuff for contact methods */
		$(contactForm_config.container+" input[name='email']").change(function(){
			var nullpasses = $(contactForm_config.container+" select[name='contact_how']").val() == "email" ? false : true;
			checkField($(this),isValidEmail,"Invalid email format. Please correct.",nullpasses);
		});	
		$(contactForm_config.container+" input[name='phone']").change(function(){
			var nullpasses = $(contactForm_config.container+" select[name='contact_how']").val() == "phone" ? false : true;
			checkField($(this),isValidPhone,"Phone numbers cannot contain letters (with the exception of 'ext'). Please correct.",nullpasses);
		});	
			
		if ($('body').hasClass('shortcontact')) {
			$("#group-inquiry_type label, #group-contact_how").hide();	
			$("#group-inquiry_type select, #group-contact_how select").attr("disabled","true").hide();	
		}
			
		/* SUBMIT */
		$(contactForm_config.container+" button[name='contact_send']").click(function(){
			/* Last shot at validation */
			$(contactForm_config.container+" input[name='org'], "+contactForm_config.container+" input[name='type'], "+contactForm_config.container+" input[name='inquiry']")
				.each(function(){checkField($(this),isCompleted,"Field Required.")});
			checkField($(contactForm_config.container+" input[name='name']"),isValidName,"Full Name Required.");
			var nullpasses = $(contactForm_config.container+" select[name='contact_how']").val() == "email" ? false : true;
			checkField($(contactForm_config.container+" input[name='email']"),isValidEmail,"Invalid email format. Please correct.",nullpasses);
			nullpasses = $(contactForm_config.container+" select[name='contact_how']").val() == "phone" ? false : true;
			checkField($(contactForm_config.container+" input[name='phone']"),isValidPhone,"Phone numbers cannot contain letters (with the exception of 'ext'). Please correct.",nullpasses);

			
			if ($('.form_error').length) {
				// Form fields empty!
				alert("Please complete all fields.");
			} else { 
				$(this).attr("disabled", "true").hide();  // no submitting twice!
				var url = getUrlVars(window.location.href);
				data_string = $(contactForm_config.container+" form").serialize();
				// user feedback:
					$(contactForm_config.container+" form").append($('<p class="sending">Please wait while we send your message...</p>')); 
					name = $(contactForm_config.container+" input[name='name']").val();			
					$(contactForm_config.container).fadeTo(500,.5);
				$.ajax({
				   type: "POST",
				   url: "/scripts/ajax/contact_process.php",
				   data: data_string+"&title="+($("#q_title").length && $("#q_title").text() ? $("#q_title").text() : $("h1").text()),
				   async: false,
				   success: function(msg){
					   var resultcontainer = $("#emailTab form");
					   if (!resultcontainer.length) resultcontainer = $(contactForm_config.container+" h2");
					   
					   var contactname = $("#q_name").text();
					   if (contactname == "") contactname = "Indium Corporation";
					resultcontainer.after(
						$("<p class='success column span-4 last'><strong>Hello, "
							+ name	+":</strong> " + 
							"Thank you for your interest. You'll hear back from "+contactname+" soon.</p>"
							+ "<div class='socialmedia-box-contact'>"
							+ "<h4>Join us on...</h4>"
							+ "<ul>"
							+ "<li class='facebook'><a href='http://www.facebook.com/indium?ref=ts' target='_blank'>Facebook</a></li>"
							+ "<li class='twitter'><a href='http://twitter.com/IndiumCorp' target='_blank'>Twitter</a></li>"
							+ "<li class='youtube'><a href='http://www.youtube.com/user/indiumcorporation' target='_blank'>YouTube</a></li>"
							+ "<li class='linkedin'><a href='http://www.linkedin.com/companies/68884' target='_blank'>LinkedIn</a></li>"
							+ "<li class='blogs'><a href='http://www.indium.com/blogs/'>Our Blogs</a></li>"
							+ "</ul>"
							+"</div>")); 
					$(contactForm_config.container).fadeTo(500,1);
					_gaq.push(['_trackPageview', '/contact/thankyou']);

				   },
				   error: function(obj,text,error) {
					$(contactForm_config.container+" h2").after(
						$("<p class='error column span-4 last'><strong>Hello, "
							+ name	+ ":</strong>" + 
							"Something went wrong when we tried to send your message. You can try again later "
							+ "or contact us another way: by phone at +1.315.853.4900 or by e-mail at "
							+ "<a href='"+$(contactForm_config.container+" form").attr("title")+"?subject=Contact: "+$("#q_title").text()+"'>"
							+ $(contactForm_config.container+" form").attr("title")+"</a>.</p>")); 
					$(contactForm_config.container).fadeTo(500,1);
					_gaq.push(['_trackPageview', '/contact/error']);
				   }
				 });


				$(contactForm_config.container+" form").remove();
			}
			return false; // We don't want to submit the form since AJAX handled it
		});
	}
}

/*****************************************
 Take Care of Processing the Friend Form
*****************************************/
function onshowFriend (dialog) {
	$(document).keypress(function(e){
	  var key  = (window.event) ?  event.keyCode : e.keyCode;
 	 if( key == 27 ) $.modal.close();
	});
	if($(friendForm_config.container).length) {
		$(friendForm_config.container+" input[name='sname'], "+friendForm_config.container+" input[name='rname']")
			.blur(function(){checkField($(this),isCompleted,"Field Required.")});
		$(friendForm_config.container+" input[name='remail'],"+friendForm_config.container+" input[name='semail']")
			.blur(function(){checkField($(this),isValidEmail,"Invalid email format. Please correct.")});

		$(friendForm_config.container+" button[name='friend_send']").click(function(){
	
			$(friendForm_config.container+" input[name='sname'], "+friendForm_config.container+" input[name='rname']")
				.each(function(){checkField($(this),isCompleted,"Field Required.")});
			$(friendForm_config.container+" input[name='remail'],"+friendForm_config.container+" input[name='semail']")
				.each(function(){checkField($(this),isValidEmail,"Invalid email format. Please correct.")});

			if ($('.form_error').length) {
				alert("Please complete all fields.");
			} else { 
				$(this).attr("disabled", "true");
				$(friendForm_config.container+" form").append($('<p class="sending">Please wait while we send your message...</p>'));
				data_string = $(contactForm_config.container+" form").serialize();
				$(friendForm_config.container).fadeTo(500,.5);
				$.ajax({
				   type: "POST",
				   url: "/scripts/ajax/friend_process.php",
				   data: data_string+"&ajax=true",
				   async: false,
				   success: function(msg){
					$(friendForm_config.container+" h2").after(
						$("<p class='success column span-4 last' style='text-align: left;'>" 
							+ "Your friend has been sent an e-mail with a link to this post.</p>")); 
					$(friendForm_config.container).fadeTo(500,1);
				   },
				   error: function(obj,text,error) {
					$(friendForm_config.container+" h2").after(
						$("<p class='error column span-4 last'><strong>Hello, "
							+ name	+ ":</strong> " + 
							"Something went wrong when we tried to send your message. Please try again later.</p>")); 
					$(friendForm_config.container).fadeTo(500,1);
				   }
				 });

				$(friendForm_config.container+" form").remove();
			}
			return false; // We don't want to submit the form since AJAX handled it
		});
	}
}


/*****************************************
 Helper Fcns
*****************************************/
// Read a page's GET URL variables and return them as an associative array.
function getUrlVars(u)
{
	var url = u=="" ? window.location.href : u;
	var vars = [], hash;
    var hashes = url.slice(url.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}
jQuery.fn.addNotice = function(element, time) {
	jQuery(this).prepend(element);
	element.animate({opacity:1},time, function(){
		jQuery(this).animate( {opacity: 0.0, height:0}, 1000, function() {jQuery(this).remove();})
	});
	return this;
}
function isCompleted(str) { return str != ""; }
function isValidName(str) {
  var format = new RegExp("^.* .*$"); 
  var matches = format.exec(str);
  return matches;
}
function isValidEmail(str) {
  if (str == "optional") return true;
  var format = new RegExp("^[A-Za-z0-9._%+-]+@(?:[A-Za-z0-9-]+[.])+[A-Za-z]{2,4}$"); 
  var matches = format.exec(str);
  return matches;
}
function isValidPhone(str) {
  if (str == "optional") return true;
  var format = new RegExp("^[-0-9ext,.\s ()+]+$"); 
  var matches = format.exec(str);
  return matches;
}
function checkField(element,check,error,nullpasses) {
	nullpasses = nullpasses ? (trim(element.val())=="" ? true : false) : false;
	element.removeClass('form_error');
	if (element.parent('div,p').children("span.error").length) 
			element.parent('div,p').children("span.error").remove();
	
	if (nullpasses || check(element.val())) return true; 
	
	element.addClass('form_error');
	$('<span class="error">'+error+'</span>').appendTo(element.parent('div,p'));
	return false;
									
}
function trim(str) {
	var	str = str.replace(/^\s\s*/, ''),
		ws = /\s/,
		i = str.length;
	while (ws.test(str.charAt(--i)));
	return str.slice(0, i + 1);
}

function setOptional(el) {
	if (el.val() == "") el.val('optional').addClass('js_option');
	el.focus(function(){ if (el.val() == 'optional') el.val("").removeClass('js_option'); })
			 .blur(function(){ if (el.val() == "") el.val('optional').addClass('js_option'); }).change();	
}
function clearOptional(el) {
	if (el.val() == "optional") el.val("");
	el.removeClass('js_option').unbind('focus').unbind('blur');
}
jQuery.fn.pulse = function(time) {this.animate({opacity:.2},time).animate({opacity:1},time);return this;}


/**

 * jQuery.ScrollTo - Easy element scrolling using jQuery.

 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com

 * Dual licensed under MIT and GPL.

 * Date: 5/25/2009

 * @author Ariel Flesler

 * @version 1.4.2

 *

 * http://flesler.blogspot.com/2007/10/jqueryscrollto.html

 */

;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);

// ]]>

