// JavaScript Document

/* DON'T FORGET TO MAKE THE SAME CHANGES IN functionsIE6.js */

function loadHyperlinks() {
	
		$('.church_logo').bind('mouseover',function() { $("#pcusa").attr('src','/images/church_logo_hover'+extension); });
		$('.church_logo').bind('mouseout',function() { 	$("#pcusa").attr('src','/images/church_logo'+extension); });
	
	
}

function getDBContent(pg,db) {
	
			var theURL = 'library/content.php';
												
			$.ajax({
					   url: theURL,
					   data: ({db:db,pg:pg,action:'get_db_content',page:pagetype,year:viewYear}),
					   type: 'POST',
					   success: function(response) {
						   	var r = response.split('/*/');
							$("#db_pages").html(r[0]);
							$("#db_html").html(r[1]);
							addPageNumberHandlers();
						},
					   error: function() {}
			 	});
	
	
	
	
}

function loadFormHandlers() {
			
		$('input[type!=radio][type!=checkbox][type!=button]').css('border','1px solid #999');
		$('textarea').css('border','1px solid #999');
		$('select').css('border','1px solid #999');
		$('#search').css('border','none');
		
		var html = "<img src='images/form.gif' width='16' height='16' />";
		$(".form_loader").each(function() { $(this).html(html) });
	
		var obj = $("table[id^=pledgeForm]");
		if (obj.length>0) {
		obj.each(function() {
						  
						  var newID = 'pledgeForm'+Math.floor(Math.random()*99999);
						  $(this).attr('id',newID);
						  var button = $(this).find('input[name=pledge_submit]');
						  button.bind('click',function() { submitPledgeForm($(this)) });
						  
		});
		}
		

	
	
}

function submitPledgeForm(obj) {

		var form = obj.parents('table');
		var formid = obj.attr('id');
		var fields;
		var errors = 0;
		var data = new Array();
		
		form.find('.form_callback').css('display','none');
		form.find('input[name=pledge_submit]').attr('disabled',true);
		
		var req_fields = new Object();
		req_fields['pledge_name'] 				= 'textfield:required';
		req_fields['pledge_email'] 				= 'textfield:required';
		req_fields['pledge_amount'] 			= 'textfield:required';
		req_fields['pledge_install_amount'] 	= 'textfield:required';
		req_fields['pledge_install_frequency'] 	= 'list:';
		req_fields['pledge_draft'] 				= 'checkbox:';

		form.find("input,select,textarea").removeClass('form_error');

		for(key in req_fields) { 
				
				fields = req_fields[key].split(':');
				
				switch(fields[0]) {
					
					case 'textfield':
					val = form.find('input[name='+key+']').val();
					break;
					
					case 'list':
					val = form.find('select[name='+key+'] option:selected').val();
					break;
					
					case 'checkbox':
					val = form.find('input[name='+key+']:checked').val();
					break;					
					
					
				}
				
				data.push(key+"="+escape(val));
				
				if (fields[1] == 'required' && (val == '' || val == 'undefined')) { 
						
						errors++;
						form.find("[name="+key+"]").addClass('form_error'); 
						
				}
				
		}
		
		if (errors>0) { 
			form.find('.form_callback').removeClass('success').addClass('failure').text('Highlighted Fields Are Required').fadeIn();
			form.find('input[name=pledge_submit]').attr('disabled',false);
		} else {
			sendData = data.join('&');	
			submitPledge(sendData,form);
		}
	
	
}

function submitPledge(data,form) {
	
			var theURL = 'library/forms.php';
			form.find('.form_loader').fadeIn();
			
			$.ajax({
					   url: theURL,
					   data: ({data:data,form:'pledge'}),
					   type: 'POST',
					   success: function(response) {
						   
						   	var code = response.split('|')[0];
						   	var message = response.split('|')[1];
						   	var theClass = (code==0)?'failure':'success';
							form.find('.form_loader,input[name=pledge_submit]').css('display','none');
						  	form.find('.form_callback').removeClass('failure success').addClass(theClass).text(message).fadeIn();
								
						},
					   error: function() { 

							form.find('.form_loader,input[name=pledge_submit]').css('display','none');
						 	form.find('.form_callback').removeClass('failure success').addClass('failure').text("We're sorry, we've experienced an error. Please contact the church office").fadeIn();
					   
					   }
			 	});	
			
			
	
}

function loadHover() {
	
		$('.rc_image').bind('mouseover',function() {
												 
		var img = $(this).children('img');
		img.animate({ opacity: 0.7 }, 'fast');
															
		});

		$('.rc_image').bind('mouseout',function() {
		
		var img = $(this).children('img');
		img.animate({ opacity: 1 }, 'fast');
															
		});

}


function loadNavigation() {
						
			$('ul.sf-menu').superfish({
										   
				   autoArrows: false,
				   disableHI: false,
				   delay: 500,
				   //dropShadows: false,
							   
									   
		   });
			
}

function addPageNumberHandlers() {

			$("a[id^=YEAR]").unbind().bind('click',function() { 
											
											
											viewYear = $(this).attr('id').substr(4);
											var db = $(this).parent().siblings('.databaseInfo').attr('id');
											var dbTitle = $(".cont_title").html().split(' ')[0];
											$(".cont_title").html( dbTitle + " " + viewYear );
											getDBContent(0,db);
											
			});		

	
			$("a[id^=PAGE]").unbind().bind('click',function() { 
											
											var page = $(this).attr('id').substr(4);
											var db = $(this).parent().siblings('.databaseInfo').attr('id');
											getDBContent(page,db);
											
			});		
	
}

function loadShadowbox() {
		
		Shadowbox.init({
			handleOversize: "drag",
			modal: true,
			
		});
	
}

/* currently not in use */
function loadBanner() {
	 
	//var baseURL = '<?=$px['domain'] . substr($px['banners']['target'],strlen($px['directories']['base'])-1); ?>';
	//var xmlFile = '<?=$px['domain'] . substr($px['xml']['target'],strlen($px['directories']['base'])-1); ?>';
	//var loading = 'preview';
												   	
	var rand = Math.floor(Math.random()*999)
	var flashvars = {baseURL:escape(baseURL),xmlFile:escape(xmlFile),loading:loading,pageid:pageid}; 
	var params = {allowscriptaccess:'sameDomain',wmode:'transparent',bgcolor:'#FFFFFF'};
	var attributes = {};
	swfobject.embedSWF("flash/banner/banner.swf?r="+rand, "flashBanner", "490", "120", "9.0.0", "flash/expressInstall.swf",flashvars,params,attributes);
	
	
}

function doSearch(form,page) {
		
	var directory = (page=='preview')?'/preview_search/':'/search/';
	var string = form.search.value;
	if (string == 'Search SMPC.org' || string == '') { return false; }
	window.location.href = directory+''+escape(string);
	
}

function clearSearchField(form) {
	
	form.search.value = '';
	
}

function checkEnter(e,form,page) {
	
		var keyCode;
		
		if (window.event) { keycode = window.event.keyCode; }
		else if (e) { keycode = e.which; }
		else { return true; }
		
		if (keycode == 13) { doSearch(form,page); return false; } else { return true; }
				
}

function adjustColumnHeights() {
			
			/*Makes sure the middle column's height matches the tallest column on the page*/
	
			var columns = new Array('.c_right','.c_left','.c_middle');
			var columnHeights = new Array();
			for(i=0;i<columns.length;i++) {
				   	columnHeights.push($(columns[i]).outerHeight(true));
			}
						   
		   var newHeight = columnHeights.max() + 150 + 'px';
		   $('.c_middle_content, .c_midddle, .column_container').css('height',newHeight,'min-height',newHeight);
		   //$("#debug").text( $('.column_container').css('height') );
		   
	
}


Array.prototype.max = function() {
var max = this[0];
var len = this.length;
for (var i = 1; i < len; i++) if (this[i] > max) max = this[i];
return max;
}
Array.prototype.min = function() {
var min = this[0];
var len = this.length;
for (var i = 1; i < len; i++) if (this[i] < min) min = this[i];
return min;
}


jQuery.fn.extend({
    highlight: function(search, insensitive, hls_class){
      var regex = new RegExp("(<[^>]*>)|(\\b"+ search.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1") +")", insensitive ? "ig" : "g");
      return this.html(this.html().replace(regex, function(a, b, c){
        return (a.charAt(0) == "<") ? a : "<strong class=\""+ hls_class +"\">" + c + "</strong>";
      }));
    }
  });

