/**
 * @package Pagsanjan
 * @author Daellix / Christian Duller
 * @version 1.0
 * @copyright 2011, Daellix
*/

/* Pagsanjan object which contains all our functions/etc */
var obj = obj || {};

/* document ready.... magic happens here */
(function($) {
$(document).ready(function(){
	obj.init();
});
})(jQuery);

//////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////


/**
 * Initialise the Pagsanjan website and various features.
 */
obj.init = function() {

	if($("#hiddenevents").length)
		obj.initPagination('#hiddenevents div.event_result','#Pagination',obj.pageselectCallback);
	
	if($("#hiddennews").length)
		obj.initPagination('#hiddennews div.news_result','#Pagination2',obj.pageselectCallback2);
	
	if($("#hiddenbooks").length)
		obj.initPagination('#hiddenbooks div.book_element','#bookpaginator',obj.bookCallback);
	
	obj.menu();
	$("#cur_time").clock();
	
	if ($('.img_popup').length) {
		$("a[rel='img_lightbox']").colorbox();
	}
	
	if($("#left_panel h2").length)
		$("#left_panel h2").corner('5px');
	
	$(".sub_btm").corner("bottom");
	
	if($("#input_frm").length)
		$("#input_frm").validate();
	
	if($("#footer").length)
		$("#footer").corner("keep 5px");
	
	if($("#email_frm").length)
		$("#email_frm").validate();
	
	if($("#feature_list").length){
		$("#feature_list").corner("keep 5px");
		obj.initSlides();
	}
	
	if($("#galleries").length){
		obj.gallery_slide();
		$("#galleries .gal_panel").corner("keep 5px");
		$(".gal_desc").corner("bottom 5px");
		$(".img_hldr").corner("bottom 5px");
	}
	
}
obj.gallery_slide = function() {
  var cnt = $('.img_hldr').length;
  	if(cnt!=0){
		for(var i=0;i<cnt;i++){
			$("a[rel='img_lightbox"+i+"']").colorbox();
		}
	}
  $('#galleries ul').hide();
  $('#galleries li a').click(
    function() {
        var checkElement = $(this).next();
		if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
			$(this).next().slideToggle('normal');
			return false;
		}
		if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
			$('#galleries ul:visible').slideUp('normal');
			checkElement.slideDown('normal');
			return false;
		}
      }
    );
}

obj.bookCallback = function(page_index, jq){
	var items_per_page = 5;
		
	var totaldata = jQuery('#hiddenbooks div.book_element').length;
	var max_elem = Math.min((page_index+1) * items_per_page, totaldata);
	 var newcontent = '';
	 for(var i=page_index*items_per_page;i<max_elem;i++)
	    {
	    	newcontent += jQuery('#hiddenbooks div.book_element:eq('+i+')').html();
	    }
	    // Replace old content with new content
	    $('#SearchBookresult').html(newcontent);
	        return false;
}

obj.pageselectCallback = function(page_index, jq){
	var items_per_page = 2;
	if($("#long_list_tag").length)
		items_per_page = 5;
		
	var totaldata = jQuery('#hiddenevents div.event_result').length;
	var max_elem = Math.min((page_index+1) * items_per_page, totaldata);
	 var newcontent = '';
	 for(var i=page_index*items_per_page;i<max_elem;i++)
	    {
	    	newcontent += jQuery('#hiddenevents div.event_result:eq('+i+')').html();
	    }
	    // Replace old content with new content
	    $('#SearchEventresult').html(newcontent);
	        return false;
}

obj.pageselectCallback2 = function(page_index, jq){
	var items_per_page = 2;
	if($("#long_list_tag").length)
		items_per_page = 5;
	
	var totaldata = jQuery('#hiddennews div.news_result').length;
	var max_elem = Math.min((page_index+1) * items_per_page, totaldata);
	 var newcontent = '';
	 for(var i=page_index*items_per_page;i<max_elem;i++)
	    {
	    	newcontent += jQuery('#hiddennews div.news_result:eq('+i+')').html();
	    }
	    // Replace old content with new content
	    $('#SearchNewsresult').html(newcontent);
	        return false;
}

/** 
 * Initialisation function for pagination
 */
obj.initPagination = function(data,paginator,callbak) {
	var items = 2;
	if($("#long_list_tag").length)
		items = 5;
	
	if($("#hiddenbooks").length)
		items = 5;
    // count entries inside the hidden content
    var num_entries = jQuery(data).length;
    // Create content inside pagination element
    $(paginator).pagination(num_entries, {
        callback: callbak,
        items_per_page:items
    });
 }

/** 
 * Initialise gallery
 */
obj.initSlides = function() {
	$.featureList(
			$("#tabs li a"),
			$("#output li"), {
				start_item	:	0
			}
		);
		/*
		// Alternative
				
		$('#tabs li a').featureList({
			output			:	'#output li',
			start_item		:	1
		});
		*/
}
/** 
 * Initialise menu
 */
obj.menu = function() {
	// removed the first border of first menu list
	$(".brdr").each(function(e){
		if(e==0){
			$(this).css('border-left','none');
		}
	});
	
	
	jQuery("#menu li").hover(
		function(){ $("ul", this).fadeIn("fast"); }, 
		function() { } 
	);
	if (document.all) {
		$("#menu li").hoverClass ("sfHover");
	}
}
/** 
 * Initialise menu
 * hover class
 */
$.fn.hoverClass = function(c) {
	return this.each(function(){
		$(this).hover( 
			function() { $(this).addClass(c);  },
			function() { $(this).removeClass(c); }
		);
	});
};

$.fn.clock = function(options) {
  t = new Array();
  var locale = {
    "ph":{
      "weekdays":["Lingo","Lunes","Martes","Mierkoles","Webes","Byernes","Sabado"],
      "months":["Enero","Febrero","Marso","Abril","Mayo","Hunyo","Hulio","Agosto","Setyembre","Oktobre","Nobyembre","Disyembre"]
    },
    "en":{
      "weekdays":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],
      "months":["01","02","03","04","05","06","07","08","09","10","11","12"]
    }
  }

  return this.each(function(){
    options = options || {};
    options.timestamp = options.timestamp || "systime";
    systimestamp = new Date();
    systimestamp = systimestamp.getTime();
    options.sysdiff = 0;
    if(options.timestamp!="systime"){
      mytimestamp = new Date(options.timestamp);
      options.sysdiff = options.timestamp - systimestamp;
    }
    options.langSet = options.langSet || "en";
    options.format = options.format || ((options.langSet!="en") ? "24" : "12");
    options.calendar = options.calendar || "true";

    if (!jQuery(this).hasClass("jqclock")){jQuery(this).addClass("jqclock");}

    var addleadingzero = function(i){
      if (i<10){i="0" + i;}
      return i;
    },
    updateClock = function(el,myoptions) {
      var el_id = jQuery(el).attr("id");
      if(myoptions=="destroy"){ clearTimeout(t[el_id]); }
      else {
        mytimestamp = new Date();
        mytimestamp = mytimestamp.getTime();
        mytimestamp = mytimestamp + myoptions.sysdiff;
        mytimestamp = new Date(mytimestamp);
        var h=mytimestamp.getHours(),
        m=mytimestamp.getMinutes(),
        s=mytimestamp.getSeconds(),
        dy=mytimestamp.getDay(),
        dt=mytimestamp.getDate(),
        mo=mytimestamp.getMonth(),
        y=mytimestamp.getFullYear(),
        ap="",
        calend="";

        if(myoptions.format=="12"){
          ap=" AM";
          if (h > 11) { ap = " PM"; }
          if (h > 12) { h = h - 12; }
          if (h == 0) { h = 12; }
        }

        // add a zero in front of numbers 0-9
        h=addleadingzero(h);
        m=addleadingzero(m);
        s=addleadingzero(s);

        if(myoptions.calendar!="false") {
          if (myoptions.langSet=="en") {
            calend = locale[myoptions.langSet].weekdays[dy]+', '+locale[myoptions.langSet].months[mo]+'/'+dt+'/'+y+" ";
          }
          else {
            calend = locale[myoptions.langSet].weekdays[dy]+', '+dt+' '+locale[myoptions.langSet].months[mo]+' '+y;
          }
        }
        jQuery(el).html(calend+"<span class='clocktime'>"+h+":"+m+":"+s+ap+"</span>");
        t[el_id] = setTimeout(function() { updateClock( $(el),myoptions ) }, 1000);
      }

    }
      
    updateClock($(this),options);
  });
}

$.fn.featureList = function(options) {
	var tabs	= $(this);
	var output	= $(options.output);

	new jQuery.featureList(tabs, output, options);

	return this;	
};

$.featureList = function(tabs, output, options) {
	function slide(nr) {
		if (typeof nr == "undefined") {
			nr = visible_item + 1;
			nr = nr >= total_items ? 0 : nr;
		}

		tabs.removeClass('current').filter(":eq(" + nr + ")").addClass('current');

		output.stop(true, true).filter(":visible").fadeOut();
		output.filter(":eq(" + nr + ")").fadeIn(function() {
			visible_item = nr;	
		});
	}

	var options			= options || {}; 
	var total_items		= tabs.length;
	var visible_item	= options.start_item || 0;

	options.pause_on_hover		= options.pause_on_hover		|| true;
	options.transition_interval	= options.transition_interval	|| 5000;

	output.hide().eq( visible_item ).show();
	tabs.eq( visible_item ).addClass('current');

	tabs.click(function() {
		if ($(this).hasClass('current')) {
			return false;	
		}

		slide( tabs.index( this) );
	});

	if (options.transition_interval > 0) {
		var timer = setInterval(function () {
			slide();
		}, options.transition_interval);

		if (options.pause_on_hover) {
			tabs.mouseenter(function() {
				clearInterval( timer );

			}).mouseleave(function() {
				clearInterval( timer );
				timer = setInterval(function () {
					slide();
				}, options.transition_interval);
			});
		}
	}
};

