﻿/**
 *Author: Jerome S. Conde
 *UI Developer
 *Impact Proximity
 */

$(document).ready(
	function(){
		
		var locale = "en_gb";
		if(window.location.href.match(/ar_ae/g)){
			locale = "ar_ae";
		}
		
		/**
		 *Function to handle selectbox replacement
		 */
		createUL();
		function createUL(){
			var ul = $(document.createElement("UL"));
			ul.attr("id","Channels");
			ul.appendTo("div.Channel");
			$("select.ChannelList").css({display:'none'});
			$("select.ChannelList option").each(
				function(){
					var selClass = "";
					if($(this).attr("selected")) selClass = "Selected";
					$("<li class='"+ selClass +"'>"+ $(this).text() +"</li>").appendTo(ul);
				}
			);
			$("#Channels li:odd").addClass("Odd");
			$("#Channels li")
			.css({cursor:'pointer'})
			.bind("click",function(){
				$(this).toggleClass("Selected");
				var indx = $("#Channels li").index(this);
				if($("select.ChannelList option:eq("+indx+"):selected").length == 0)
				$("select.ChannelList option").eq(indx).attr("selected","selected");
				else $("select.ChannelList option").eq(indx).attr("selected","");
				//window.status = queryStr();

			})
			;
		}		 		
		
		/**
		 *Invoke auto suggest function here
		 */
		function qry(){
			var queryObj = {};
			queryObj.genre = $("select.GenreList option:selected").val();
			
			//queryObj.channels = channels;
			//queryObj.after = $("div.CalendarWrap input.Textbox1:eq(0)").val();
			//queryObj.before = $("div.CalendarWrap input.Textbox1:eq(1)").val();
			return queryObj;
		}
		
		function gatherParam(){
			var channels = "";
			var opts = $("select.ChannelList option:selected");
				opts.each(function(i){
					channels += $.trim($(this).val());
					if(opts.size()-1 != i) channels += "|";
				})
				;
			return {channels:channels,range:$("input[name='rdoDate']:checked").val()}
		}
		
		var ajaxURL = ajaxDomain+"//www.osnetwork.com/showguide/online/search_"+currentPageLocale+".aspx"; 		 		
		$("input.AutoSuggest")
		.suggest(ajaxURL,{delimiter:"|",delay:50,moreParams:qry(),fnParam:gatherParam});
		
		/**
		 * Show all Programs handler
		 */
		var enterKey = "enter keywords";
		var plsSelect = "please select";

		$("div.Keyword img.Icon")
		.eq(0)
		.one("click",function(){
			var loadingMsg = "loading...";
			if(locale == "ar_ae") loadingMsg = "جاري التحميل...";

			var $input = $("input.AutoSuggest");
			$input.addClass("Loading");
			$input.val(loadingMsg);
			$.get(ajaxURL,{showAll:"true"},function(txt){
				displayResults(txt);
				$input.val(plsSelect);
				$input.removeClass("Loading");
			});
		})
		.bind("click",function(){
			if($(".SuggestResult:hidden").length){
				$("#iFrame").show();
			}
			else $("#iFrame").hide();
			$(".SuggestResult").toggle();
		})
		;
		
		if(!$("input.AutoSuggest").attr("value")) 
			$("input.AutoSuggest").attr("value",enterKey);
		$("input.AutoSuggest")
		.bind("focus",function(){
			var pls = $(this).val();
			if(pls.indexOf(enterKey) > -1) $(this).val("");
			if(pls.indexOf(plsSelect) > -1) $(this).val("");
			$(".SuggestResult").hide();
			$("#iFrame").hide();
		})
		.bind("blur",function(){
			if($(this).val() == "") $(this).val(enterKey);
		})
		;
		
		function displayResults(txt){
			var result = document.createElement("UL");
			var $results = $(result);
			var items = txt.split("|");
			var input = $("input.AutoSuggest");
			var offset = $(input).offset();
			
			$results
			.appendTo("body")
			.addClass("SuggestResult")
			.css({
				position:'absolute',
				top: (offset.top + 4 + input.height()) + 'px',
				left: offset.left + 'px'
			})
			;
			
			if($.browser.msie && parseInt($.browser.version) <= 6){
			$("#iFrame").remove();
			$("<iframe></iframe>")
			.attr("id","iFrame")
			.insertBefore(".SuggestResult")
			.css({
				width: input.width() + 21 + 'px',
				height: $(".SuggestResult").height() + 'px',
				position: 'absolute',
				top: (offset.top + 4 + input.height()) + 'px',
				left: offset.left + 'px'
			})
			;
		}
			
			for(var i=0;i<items.length;i++){
			//var limit = 100;
			//if(items.length < 100) limit = items.length;
			//for(var i=0;i<limit;i++){
				$results.append(
					"<li>"+ items[i] +"</li>"
				);
			}
			
			$("li",result)
			.bind("click",
				function(){
					$("input.AutoSuggest").val($(this).text()).focus();
					$(".SuggestResult").hide();
					$("#iFrame").hide();
				}
			)
			.bind("mouseover",
				function(){
					$(this).css({background:'#f2f2f2'});
				}
			)
			.bind("mouseout",
				function(){
					$(this).css({background:'#ffffff'});
				}
			)
			;
		}
		
		
		/**
		 *Function to handle calendar
		 */		 		
		var calTimer = null;
		$("div.CalendarWrap img.Icon")
		.bind("mouseover",function(){
			$("div.Calendar",this.parentNode).show();
		})
		.bind("mouseout",function(){
			calTimer = setTimeout(xFn,250);
			function xFn(){
				$("div.Calendar:visible").hide();
			}
		})
		;
		
		$("div.Calendar")
		.bind("mouseover",function(){
			clearTimeout(calTimer);
		})
		.bind("click",function(){
			$(this).hide();
		})
		.bind("mouseout",function(){
			$("img.Icon",this.parentNode).trigger("mouseout");
		})
		;
		
		$("div.Calendar *")
		.bind("mouseover",function(){
			$("div.Calendar").trigger("mouseover");
		})
		;
		
	}
);
