/*
////////////////////////////////////
jQUERY CODE
///////////////////////////////////
*/

$j.log = function(msg) { try { console.log('%s [%o]', msg, this); return this; } catch(err) { } }
$j(document).ready(function(){
	/* CONFIGURE SLIMBOX2 - http://www.digitalia.be/software/slimbox2 (Added 'overlayColor' option) */
	$j('head').append('<link rel="stylesheet" href="js/slimbox/slimbox2.css" media="screen" type="text/css" />');
	if(document.createStyleSheet) { document.createStyleSheet('js/slimbox/slimbox2.css'); }
	$j("a[rel^='lightbox']").slimbox({
			loop:false,
			overlayColor:'#494B4D',
			overlayOpacity:.75,
			overlayFadeDuration:400,
			resizeDuration:400,
			resizeEasing:"swing",
			initialWidth:250,
			initialHeight:250,
			imageFadeDuration:400,
			captionAnimationDuration:400,
			counterText:'Image {x} of {y}',
			closeKeys:[27,88,67],
			previousKeys:[37,80],
			nextKeys:[39,78]
		}, function(el) { return [el.href, el.title]; }, function(el) { return (this == el) || ((this.rel.length >= 8) && (this.rel == el.rel)); });
	/* INITIALIZE */
	$j(window).bind('resize',function(){
		$j('#container').css({ left:(Math.round($j(window).width()/2)-485)+'px', height:$j(window).height()+'px' });
	});
	$j('#tablepad').hide();
	$j('#links, #overlay-top, #overlay-bottom, #header, #text,#bluebar,#container').css({ position:'absolute' });
	//$j('#links').css({ zIndex:'0' });
	$j('#link-left, #link-right').show();
	$j('#container')
		.css({ left:(Math.round($j(window).width()/2)-485)+'px', minHeight:'620px', height:$j(window).height()+'px', margin:'0px', padding:'0px' })
		.append('<div style="position:absolute;left:206px;top:143px;z-index:50;width:545px;height:1px;overflow:hidden;background-color:rgb(26,123,172);"></div>')
		.append('<div style="position:absolute;left:206px;top:435px;z-index:50;width:545px;height:1px;overflow:hidden;background-color:rgb(26,123,172);"></div>')
		.append('<div id="instructions" style="position:absolute;display:none;left:237px;top:153px;z-index:60;width:485px;height:273px;overflow:hidden;background:url(css/images/v2-instructions.png) left top no-repeat;"></div>');
	$j('#links').css({ top:'153px' });
	/* PREV/NEXT LINKS */
	$j.onMobileDevice = (navigator.platform.indexOf("iPhone") != -1 || navigator.platform.indexOf("iPod") != -1 || navigator.userAgent.match(/iPad/i) != null || navigator.userAgent.toLowerCase().indexOf("android") > -1) ? true : false;
	if (!$j.onMobileDevice) {
		$j.keysHint = setTimeout("$j('#instructions').fadeIn(500).delay(2000).fadeOut(500,function(){ $j(this).remove(); });",3000);
	}
	$j.currentPos = 0;
	$j.totalProjects = $j('#projTable tr').length-1;
	$j('#link-left a').bind('click',function(event){
		event.preventDefault();
		clearTimeout($j.keysHint);
		$j(this).blur();
		$j.currentPos--;
		//alert(($j.currentPos*283+153)+'px');
		if ($j.currentPos > -1) {
			$j('#links').stop().animate({ top:(-($j.currentPos*283)+153)+'px' },1000,'swing',function(){  });
		} else {
			$j.currentPos = 0;
		}
	});
	$j('#link-right a').bind('click',function(event){
		event.preventDefault();
		clearTimeout($j.keysHint);
		$j(this).blur();
		$j.currentPos++;
		if ($j.currentPos < $j.totalProjects) {
			$j('#links').stop().animate({ top:'-'+($j.currentPos*283-153)+'px' },1000,'swing',function(){  });
		} else {
			$j.currentPos = $j.totalProjects;
		}
	});
	$j('body').bind('mousewheel',function(event,delta){
		//event.preventDefault();
		var dir = delta > 0 ? 'Up' : 'Down';
		if (dir == "Up") {
			$j('#link-left a').triggerHandler('click');
		} else {
			$j('#link-right a').triggerHandler('click');
		}
	});
	$j(document).keydown(function(e) {
		var code = e.keyCode ? e.keyCode : e.which;
		switch (code) {
			case 38:
				$j('#link-left a').triggerHandler('click');
				break;
			case 40:
				$j('#link-right a').triggerHandler('click');
				break;
		}
	});
	/* CONFIGURE FLASH SLIDESHOWS */
	$j.loadFlashSlideshow = function(obj) {
		var thisID = $j(obj).attr('id');
		var thisPlayer = $j(obj).attr('data-flashplayer').split('^')[0];
		var thisWidth = $j(obj).attr('data-flashplayer').split('^')[1];
		var thisHeight = $j(obj).attr('data-flashplayer').split('^')[2];
		var flashvars = $j.parseJSON($j(obj).attr('data-flashvars'));
		var params = $j.parseJSON($j(obj).attr('data-flashparams'));
		var attributes = $j.parseJSON($j(obj).attr('data-flashattr'));
		//$j(this).after('<div>'+flashvars.sspConfig+'</div>');
		$j(obj).html('<div id="'+thisID+'Container"></div>');
		swfobject.embedSWF(thisPlayer,thisID+'Container',thisWidth,thisHeight,'8.0.0',mcmsAssetsDir+'flash/swfobject2_expressinstall.swf',flashvars,params,attributes);
	}
	
	/* FORM SUBMIT PROCESSING */
	$j('form[data-checksubmit]').bind('submit',function(event) {
		var checkArr = $j.parseJSON($j(this).attr('data-checksubmit'));
		var ok2Submit = true;
		try {
			for(i=0;i<checkArr.length;i++) {
				if(checkArr[i].TYPE == 'text') {
					if ($j('[name="'+checkArr[i].FIELDNAME+'"]').val() == '') {
						alert('THERE WAS AN ERROR WITH YOUR SUBMISSION.\nThe "'+checkArr[i].MSGLABEL+'" field cannot be blank.');
						$j('[name="'+checkArr[i].FIELDNAME+'"]').focus();
						ok2Submit = false;
						break;
					} else if (checkArr[i].hasOwnProperty('CORRECTVAL') && $j('[name="'+checkArr[i].FIELDNAME+'"]').val() != checkArr[i].CORRECTVAL) {
						alert('THERE WAS AN ERROR WITH YOUR SUBMISSION.\nThe "'+checkArr[i].MSGLABEL+'" field value must be "'+checkArr[i].CORRECTVAL+'".');
						$j('[name="'+checkArr[i].FIELDNAME+'"]').focus();
						ok2Submit = false;
						break;
					}
				}
				if(checkArr[i].TYPE == 'email') {
					if ($j('[name="'+checkArr[i].FIELDNAME+'"]').val() == '' || !emailCheck($j('[name="'+checkArr[i].FIELDNAME+'"]').val())) {
						alert('THERE WAS AN ERROR WITH YOUR SUBMISSION.\nThe "'+checkArr[i].MSGLABEL+'" field cannot be blank and must be a valid email address.');
						$j('[name="'+checkArr[i].FIELDNAME+'"]').focus();
						ok2Submit = false;
						break;
					} else if (checkArr[i].hasOwnProperty('CORRECTVAL') && $j('[name="'+checkArr[i].FIELDNAME+'"]').val() != checkArr[i].CORRECTVAL) {
						alert('THERE WAS AN ERROR WITH YOUR SUBMISSION.\nThe "'+checkArr[i].MSGLABEL+'" field value must be "'+checkArr[i].CORRECTVAL+'".');
						$j('[name="'+checkArr[i].FIELDNAME+'"]').focus();
						ok2Submit = false;
						break;
					}
				}
				if(checkArr[i].TYPE == 'radio') {
					if ($j('[name="'+checkArr[i].FIELDNAME+'"]:checked').length == 0) {
						alert('THERE WAS AN ERROR WITH YOUR SUBMISSION.\n'+checkArr[i].MSGLABEL+'\n'+checkArr[i].FIELDNAME);
						ok2Submit = false;
						break;
					} else if (checkArr[i].hasOwnProperty('CORRECTVAL') && $j('[name="'+checkArr[i].FIELDNAME+'"]:checked').val() != checkArr[i].CORRECTVAL){
						alert('THERE WAS AN ERROR WITH YOUR SUBMISSION.\n'+checkArr[i].MSGLABEL+'\nThe correct required selection is "'+checkArr[i].CORRECTVAL+'".');
						ok2Submit = false;
						break;
					}
				}
				if(checkArr[i].TYPE == 'select') {
					if ($j('[name="'+checkArr[i].FIELDNAME+'"] option:selected').length == 0 || $j('[name="'+checkArr[i].FIELDNAME+'"] option:selected').eq(0).val() == '') {
						alert('THERE WAS AN ERROR WITH YOUR SUBMISSION.\n'+checkArr[i].MSGLABEL);
						ok2Submit = false;
						break;
					} else if (checkArr[i].hasOwnProperty('CORRECTVAL') && $j('[name="'+checkArr[i].FIELDNAME+'"] option:selected').eq(0).val() != checkArr[i].CORRECTVAL) {
						alert('THERE WAS AN ERROR WITH YOUR SUBMISSION.\n'+checkArr[i].MSGLABEL+'\nThe correct required selection is "'+checkArr[i].CORRECTVAL+'".');
						ok2Submit = false;
						break;
					}
				}
				if(checkArr[i].TYPE == 'checkbox' && $j('[name="'+checkArr[i].FIELDNAME+'"]:checked').length == 0) {
					alert('THERE WAS AN ERROR WITH YOUR SUBMISSION.\n'+checkArr[i].MSGLABEL);
					ok2Submit = false;
					break;
				}
				if(checkArr[i].TYPE == 'file') {
					if ($j('[name="'+checkArr[i].FIELDNAME+'"]').val() == '') {
						alert('THERE WAS AN ERROR WITH YOUR SUBMISSION.\nThe "'+checkArr[i].MSGLABEL+'" field cannot be blank.');
						$j('[name="'+checkArr[i].FIELDNAME+'"]').focus();
						ok2Submit = false;
						break;
					} else if (checkArr[i].hasOwnProperty('ALLOWEDTYPES')) {
						var validType = false;
						var extArr = $j('[name="'+checkArr[i].FIELDNAME+'"]').val().toLowerCase().split('.');
						for(at=0;at<checkArr[i].ALLOWEDTYPES.length;at++) {
							if (extArr[extArr.length-1] == checkArr[i].ALLOWEDTYPES[at]) {
								validType = true;
							}
						}
						if (!validType) {
							alert('THERE WAS AN ERROR WITH YOUR SUBMISSION.\nThe file you selected in the "'+checkArr[i].MSGLABEL+'" field is not an allowed file type.');
							$j('[name="'+checkArr[i].FIELDNAME+'"]').focus();
							ok2Submit = false;
							break;
						}
					}
				}
			}
		} catch(err) {
			alert(err);
		}
		if (!ok2Submit) {
			event.preventDefault();
		}
	});	
});
