$(document).ready(init);
function init() {

$(document.body).removeClass('jsOff').addClass("jsOn");

/*@cc_on
     @if   (@_jscript_build < 8832) 

$('#menuMain li:has(>ul)').hover(function(e) {

	$(this).addClass('over');
	}, function() {
	$(this).removeClass('over');
});
$('#sidebar li a').append('<span></span>');
   /*@end
@*/

$('#content h2:first-child').addClass("title");
fixLinks();
fixBoxHeights();

// fix for the footer in ie7
if (jQuery.browser.msie && parseInt(jQuery.browser.version) != 6) {
$('#footer').css('padding-top','10');
}
// INITIALIZE CONTACT FORM
if (document.getElementById('amd_contactform_fixed')) {
	$('#amd_contactform_fixed').attr('action','code/process_contact.php');
	
	var contactForm = formContactBuilder( {formId : 'amd_contactform_fixed', thanksId: 'amf_response_thank' } );
	contactForm.prepareForm();
};
if ($('body').hasClass('home')) {
	$('#logoWrap a').remove();
}
//end init
};

function fixLinks() { 
var a = location.search; 
if (a.substr(1,2)=="s=") { $('body').attr('class','jsOn') ; return; }; //for search
if (a != "") {
	$('a[href$='+a+']').each(function() {
	$(this).addClass("current").removeAttr('href');
})} else {
	$('li.home a').each(function() {
		$(this).addClass("current").removeAttr('href');
	});
	// $('#logo').addClass("current").removeAttr('href');
}
}

function fixBoxHeights() { 
var sbh = $("#sidebar").height(); 
var ch = $("#content").height();

if ($('body').hasClass('contact')) {
	return;
}
var h=0; var ind=0;
var temp=new Array(sbh,ch);
for(var i=0;i<temp.length;i++){
	if(temp[i]>h){
	h=temp[i]; ind = i;
	}
}

switch (ind) {
case 0 : 
	$("#content").css("height",sbh); 
	break;
case 1 :
	var $lastLi = $("#sidebar .lastLi");
	var lih = $lastLi.height();
	$lastLi.css("height",lih+ch-sbh); 
	break;
}

}

function getId() {
return document.body.getAttribute('id');
}

var formContactBuilder = function(paramsClass) {
	var paramsInstance = { };
	var that = formConstructor(paramsClass,paramsInstance);
	return that;
}

var formConstructor = function(paramsClass,paramsInstance) {
	
	var formId = '#' + paramsClass.formId,
		thanksId = paramsClass.thanksId,
		$formJQ = $(formId);

	var prepareForm = function() {

		$formJQ.find('.validate').focus( function() { 
			var li = $(this).closest('li');
			var errSpan = $(li).find('.error:visible')[0];
			if(errSpan) { 
				$(errSpan).hide('slow');
			}
		});

		if (jQuery.browser.msie) {
			if (parseInt(jQuery.browser.version) < 7) {
				$formJQ.find('#submitBtn').hover(function() { 
					$(this).toggleClass("over"); },function() {
					$(this).toggleClass("over"); 
				});
			}
			$formJQ.find('input, textarea').focus(function() { 
				$(this).addClass('ieFocus');
			});
			$formJQ.find('input, textarea').blur(function() {
				$(this).removeClass('ieFocus');
			});
		};
		
		var options = { 
			dataType: 'json',
			beforeSubmit: validate,
			success: showResponse 
		};
		
		$formJQ.ajaxForm(options);
	};

	var validate = function(formData, jqForm, options) { 
		var form = jqForm[0], err = 0, errThis;
		for (var i=0; i < formData.length; i++) {
			var $this = $(form [name=formData[i].name]);
			var v = formData[i].value;
			if ($this.hasClass('validate')) {
				if ($this.hasClass('notempty') || $this.hasClass('radio')) {
					errThis = valFields(v,$this,formData[i].type);
					err = err + Number(errThis);
				}
				if ($this.hasClass('email')) {
					errThis = valFields(v,$this,'email');
					err = err + Number(errThis);
				}
			}
		}
	
		return !err;
	};

	var valFields = function(v,$field,type) {
	
		//validation part
		var isErr, errMsg;
		
		if (type === 'email') {
			isErr = !v.match(/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i);
			errMsg = '<span class="error">Please enter a valid e-mail address!</span>';
		} else if (type === 'radio') {
			isErr = !jQuery.trim( v );
			errMsg = '<span class="error">Please select one of the choices!</span>';
		}  else {
			isErr = !jQuery.trim( v );
			errMsg = '<span class="error">Please fill out the field above!!</span>';
		}
			
		//error display part
		if ( isErr ) {
		
			var li = $field.closest('li'),
				errSpan = $(li).find('.error')[0];
	
			if ( !errSpan ) {
				$(li).append(errMsg);
				errSpan = $(li).find('.error')[0];
			} 
			
			$(errSpan).show();
			
		}
		
		return isErr;
	}

	var showResponse = function(data)  {
		$formJQ.unbind('submit');		
		var p = $formJQ.closest('div');
		p.slideUp('slow',function() {
			p.empty()
			.addClass('processed')
			.append('<h2 id="' + thanksId + '">' + data.message + '</h2>').slideDown('slow');
		});
	};
	var that = {};
	that.prepareForm = prepareForm;
	return that;
}
