/* Author: 

*/
(function($){
	var isIE = $.browser.msie;
	var version = parseInt($.browser.version, 10);
	
	if(isIE){
		$('html').addClass('ie'+version);
		if(version <= 8){
			$('html').addClass('oldie');
		}
	}
	else{
		$('html').addClass('no-ie');
	}
})(jQuery);

$(function() {
	window.$window = $( window );
	window.$body = $( 'body' );
	
	
	if(!swfobject.hasFlashPlayerVersion("9.0.0")){
		$('html').addClass('no-flash');
	}
	
	$window
	.bind( 'style', function() {
		$( 'body *' ).removeClass( 'first-child last-child' );
		$( 'tr, td' ).removeClass( 'odd even' );
		$( 'input' ).removeClass( 'button checkbox radio submit file text reset' );

		$( 'body :first-child' ).addClass( 'first-child' );
		$( 'body :last-child' ).addClass( 'last-child' );

		$( 'tr:nth-child(odd), li:nth-child(odd)' ).addClass( 'odd' );
		$( 'tr:nth-child(even), li:nth-child(even)' ).addClass( 'even' );

		$( 'input:button' ).addClass( 'button' );
		$( 'input:checkbox' ).addClass( 'checkbox' );
		$( 'input:radio' ).addClass( 'radio' );
		$( 'input:submit' ).addClass( 'submit' );
		$( 'input:file' ).addClass( 'file' );
		$( 'input:text' ).addClass( 'text' );
		$( 'input:reset' ).addClass( 'reset' );
		
	});
	
	$("a.video-link").colorbox({opacity: '.5'});
	
	
	//anything javascript like that needs to happen to old IEs can go here
	$('html.oldie').each(function(){
		var $this = $(this);
		$window.triggerHandler( 'style' );
		//make us some shadow divs
		$this.find('.shadow').wrap('<div class="shadow1"/>');
		
		$('body#the-buzz-page .column-1 article').find('time').each(function(){
			$(this).replaceWith('<span class="time">' + $(this).html() + '</span>');
		});
	});
	

	$('.slide-show').each(function (index, e) {
		var $e = $(e);
        var id = 'slide-show-' + index;
        //make sure list has an ID
        if(!$e.attr('id')){
            $e.attr('id',id);
        } else {
            id = $e.attr("id");
        }
        
        //find all expand list items 
        $e.children("li").each( function ( i, el) {
            var $el = $(el);
            $el.attr('id',  id + '-slide-' + i)
            .addClass('slide-show-slide slide-show-slide-' + i)
            .data('parent-id', id);
			if(i == 0)
			{
				$el.addClass('selected');
			}
            
        });

	});
	
	//when the hash changes find the element it refers to and mark it selected
    $window.bind( 'hashchange', function(e) {
        var idx = $.bbq.getState();
        
    	if(idx['flash'] === 'false'){
    		$('html').addClass('no-flash');
    	}

        $('.slide-show').each( function(index, e){
            var $e = $(e);
            var navId = idx[$e.attr('id')];
            if(navId !== undefined){
                //Hey Listen!
                $('#' + navId).addClass("selected").siblings().removeClass("selected");
            }
        });

    });
    $(window).trigger( 'hashchange' );
    
    
    //all page specific code goes beyond this point.
	$('body#home-page').each(function(){
		if(!$('html').is('.no-flash')){
			swfobject.embedSWF("/tools/mathforward/flash/mf-home.swf", "mf-home", "510", "410", "9.0.0");
		}
	});
	$('body#results-page').each(function(){
		
		$('.case-study-list')
		.before('<span class="results-image-wrapper"/>')
		.find('.case-study-list-item:first')
		.addClass('selected')
		.find('img:first').clone(false)
		.appendTo('.results-image-wrapper');
		
		$('.case-study-list .case-study-list-item img').each(function(){
			var $this = $(this);
			
			$this.hide().parent()
			.hover(function(){
				$(this).siblings().removeClass('selected');
				$(this).addClass('selected');
				
				$('.results-image-wrapper')
				.empty()
				$(this).find('img').clone(false).appendTo('.results-image-wrapper').show();
			});
			
		});
		
		
	});
	$('body#contact-page').each(function(){
		$('#contact-form').submit(function(){
			return validate();
		});
		$('.submit-wrapper span').click(function(){
			$('#contact-form').submit();
		});
	});
	$('body#the-program-page').each(function(){
		if(!$('html').is('.no-flash')){
			swfobject.embedSWF("/tools/mathforward/flash/mf-components.swf", "mf-components", "585", "350", "9.0.0");
		}
	});
	
	
});

function validate() {	
	
	// *** validating "Contact Information" ***
	if(checkRadio('SALUTE') == false) {		
		alert("Please select your salutation.");		
		document.mathforward.SALUTE[0].focus();		
		return false;	
	}	
	//
	if(document.mathforward.FNAME.value == "") {
		alert("Please enter your first name.");
		document.mathforward.FNAME.focus();
		return false;
	}
	//
	if(document.mathforward.LNAME.value == "") {
		alert("Please enter your last name.");
		document.mathforward.LNAME.focus();
		return false;
	}
	//
	if(document.mathforward.SCHOOL.value == "") {
		alert("Please enter your school name.");
		document.mathforward.SCHOOL.focus();
		return false;
	}
	//
	if(document.mathforward.DISTRICT.value == "") {
		alert("Please enter your school district name.");
		document.mathforward.DISTRICT.focus();
		return false;
	}
	//
	if(document.mathforward.ADDRESS1.value == "") {
		alert("Please enter your address.");
		document.mathforward.ADDRESS1.focus();
		return false;
	}
	//
	if(document.mathforward.CITY.value == "") {
		alert("Please enter your city.");
		document.mathforward.CITY.focus();
		return false;
	}
	//
	if(document.mathforward.STATE.value == "") {
		alert("Please enter your state.");
		document.mathforward.STATE.focus();
		return false;
	}
	//
	if(document.mathforward.ZIPCODE.value == "") {
		alert("Please enter your zip code.");
		document.mathforward.ZIPCODE.focus();
		return false;
	}
	//
	if(document.mathforward.EMAIL.value == "") {
		alert("Please enter your Email address.");
		document.mathforward.EMAIL.focus();
		return false;
	}
	//
	if(validEmail() == false) {
		alert("Please check to make sure you have entered a valid e-mail address.");
		document.mathforward.EMAIL.focus();
		return false;
	}
	//
	if(document.mathforward.PHONE.value == "") {
		alert("Please enter your phone number.");
		document.mathforward.PHONE.focus();
		return false;
	}
	
	if(checkRadio('Q2B') == false) {		
		alert("Please select your preferred method of contact.");		
		document.mathforward.Q2B[0].focus();		
		return false;	
	}		
			
	if(checkCheckboxes('1') == false) {		
		alert("Please select your position.");
		document.mathforward.Q3A.focus();		
		return false;	
	}		
		
	if(checkCheckboxes('2') == false) {		
		alert("Please select your instruction level.");		
		document.mathforward.Q3H.focus();		
		return false;	
	}		
			
	if(checkCheckboxes('3') == false) {		
		alert("Please tell us how you heard of MathForward.");
		document.mathforward.Q4A.focus();		
		return false;	
	}	
		
	return true;
}

function validEmail() {
	blnEmail = true;
	email = document.mathforward.EMAIL.value;
	if(email.indexOf("@") == "-1" || email.indexOf(".") == "-1" || email.lastIndexOf(" ") != "-1") {
		blnEmail = false;
	}
	else {
		if(email.lastIndexOf("@") > email.lastIndexOf(".")) {
			blnEmail = false;
		}
	}
	badChar = new Array("!","#","$","%","^","&","*","(",")","'",";",",","?","<",">","/","[","]","{","}","\\");
	for(i=0;i<badChar.length;i++) {
		if(email.indexOf(badChar[i]) != "-1"){
			blnEmail = false;
		}
	}
	return blnEmail;
}

function checkRadio(radioName) {	
	var i = 0;	
	var len = eval("document.mathforward." + radioName + ".length");	
	
	for(i=0;i<len;i++) {		
		if(eval("document.mathforward." + radioName + "[" + i + "].checked")) {			
			return true;		
		}	
	}	
	return false;
}

function checkCheckboxes(checkBoxArrayNum) {	
	switch(checkBoxArrayNum) {		
		case "1":			
			checkBoxArray = new Array("Q3A","Q3B","Q3C","Q3D","Q3E","Q3F");			
			break;		
		case "2":			
			checkBoxArray = new Array("Q3H","Q3I");			
			break;	
		case "3":			
			checkBoxArray = new Array("Q4A","Q4B","Q4C","Q4D","Q4E","Q4F","Q4G");			
			break;			
	}	
	
	var i = 0;	
	var len = document.mathforward.elements.length;	
	var length = checkBoxArray.length;	
	for(i=0;i<length;i++) {		
		for(j=0;j<len;j++) {			
			if(document.mathforward.elements[j].name == checkBoxArray[i]) {				
				if(document.mathforward.elements[j].checked) {					
					return true;				
				}							
			}		
		}	
	}	
	return false;
}























