/* development tools */
	//G.A. global var
	var _gaq = _gaq || [];
	
	(function(){
		var docLang=document.documentElement.lang;
		if($.browser.msie && $.browser.version<8){
			
			$("#body").addClass(docLang=="ar"?"rtl":"");
			$("#page").addClass(docLang=="ar"?"ieRtl":"");		
		}else{
			$("#page").addClass(docLang=="ar"?"rtl":"");
		}
		
		$("body").css("visibility","visible");
	})();

        myUnescape=function(txt){
                var myTxt=txt.replace(/\+/g, " ");
		
		myTxt=unescape(myTxt);
		try{
			myTxt=decodeURIComponent(myTxt);
			return myTxt;
		}catch(e){
			return myTxt;
		}

        }
        
	Date.prototype.shortDate=function(sep){ //i.e. 22/11/1989
		sep=sep||"/";
		return utils.twoDigits(this.getDate()) + sep + utils.twoDigits(this.getMonth()+1) + sep + this.getFullYear();
	}
	
        
	if (!dictionary){

		var dictionary={
			logout:{
			en:"Log out",
			ar:"Ø®Ø±ÙˆØ¬"
			},
			welcome:{
				en:"Welcome: ",
				ar:"Ù…Ø±Ø­Ø¨Ø§"
			},
			noResults:{
				en:"Sorry, no results to display",
				ar:"Ù…Ø¹Ø°Ø±Ø©, Ù„Ø§ ØªÙˆØ¬Ø¯ Ù†ØªØ§Ø¦Ø¬ Ù„Ø¨Ø­Ø«Ùƒ "
			},
			publishedBy:{
				en:"published by: ",
				ar:"Ø§Ù„Ù†Ø§Ø´Ø±:"
			},
			uploadedOn:{
				en:"uploaded on: ",
				ar:"ØªÙ… Ø§Ù„ØªØ­Ø¯ÙŠØ« Ù?ÙŠ:"
			},
			suggestTopic:{
				en:"Suggest topic",
				ar:"Ø¥Ù‚ØªØ±Ø­ Ù…ÙˆØ¶ÙˆØ¹"
			},
			submitQuestion:{
				en:"Submit a Question",
				ar:"Ø§Ø¨Ø¹Ø« Ø³Ø¤Ø§Ù„"
			},
			contactUs:{
				en:"Contact us",
				ar:"Ø¥ØªØµÙ„ Ø¨Ù†Ø§"
			},
			complaints:{
				en:"Complaints",
				ar:"Ø´ÙƒØ§ÙˆÙ‰"
			},
			chatUnavailable:{
				en:"Live Chat is Currently Unavailable",
				ar:"Ø§Ù„Ù…Ø­Ø§Ø¯Ø«Ø© Ø§Ù„Ù…Ø¨Ø§Ø´Ø±Ø© ØºÙŠØ± Ù…ØªÙˆÙ?Ø±Ø© Ø­Ø§Ù„ÙŠØ§"
			},
			comment:{
				en:"comment",
				ar:"Ø§Ù„ØªØ¹Ù„ÙŠÙ‚Ù€Ø§Øª"					
			},
			comments:{
				en:"comments",
				ar:"Ø§Ù„ØªØ¹Ù„ÙŠÙ‚Ù€Ø§Øª"					
			}
		}				                
	}
		

        //app. object
        var Iol={
                videoGalleryId:"cc088664-d84a-4d8d-96f9-1a920625e7dd",
                photoGalleryId:"e0f1065c-5d8c-4b03-9346-dc53ad457c30",
				userVideos:{
					enqueue:function(fn){
						switch(utils.RealTypeOf(Iol.userVideos._videos)){
							case "null":
								Iol.userVideos._videos="loading";
								// enqueueing the fn
								Iol.userVideos._fn.push(fn);								
								
								//getting the video info
								var	mediaType = new MediaType("Video"),
									publicGalleryPage = new PublicGalleryPage(10, 1, mediaType)
									
								sendRequest(publicGalleryPage,function(data){
									
									// basic error handling
									if(data.Messages[0].Message!="ok"){
											alert(data.Messages[0].Message);
											return false;
									}
									
									var galleryObj=data.Responses[0].PublicGalleryPage;
									
									//getting the videos list for the first gallery
									if(!galleryObj.Galleries[0]){
										Iol.userVideos._videos=[];
										Iol.userVideos._flush();	
										return false;
									}
									
									var galleryKey = new GalleryKey(galleryObj.Galleries[0].GalleryKey.Key);
									var videoPage = new VideoPage(galleryKey, 10, 1, 'TimeStampDescending');
									sendRequest(videoPage,function(data){                        
											
											//defining a common interface for the thumbnail property
											var mediaObjects=$.map(data.Responses[0].VideoPage.Videos,function(item){
													item.thumbnail=item.MediumVideoThumbnail;
													item.smallThumb=item.SmallVideoThumbnail;
													item.mediaUrl=item.VideoUrl;                                                        
													return item;                                
											})
											
											Iol.userVideos._videos=mediaObjects;
											Iol.userVideos._flush();
										}
									)	
								}
							);
									
							break;
						
							case "string":
								//ajax request already sent; waiting for the response
								Iol.userVideos._fn.push(fn);
							break;
						
							case "array":
								//the content is available, let's call the function
								fn(Iol.userVideos._videos);
							break;
						}
					},
					_fn:[],
					_videos:null,
					_flush:function(){
						//looping through the fn array
						var fn=Iol.userVideos._fn.shift();
						
						while(fn){
							fn(Iol.userVideos._videos);
							fn=Iol.userVideos._fn.shift();
						}
					}
				},
				
				
				userPhotos:{
					enqueue:function(fn){
						switch(utils.RealTypeOf(Iol.userPhotos._photos)){
							case "null":
								Iol.userPhotos._photos="loading";
								// enqueueing the fn
								Iol.userPhotos._fn.push(fn);								
								
								//getting the video info
								var	mediaType = new MediaType("Photo"),
									publicGalleryPage = new PublicGalleryPage(10, 1, mediaType)
									
								sendRequest(publicGalleryPage,function(data){
									
									// basic error handling
									if(data.Messages[0].Message!="ok"){
											alert(data.Messages[0].Message);
											return false;
									}
									
									var galleryObj=data.Responses[0].PublicGalleryPage;
									
									//getting the videos list for the first gallery
									if(!galleryObj.Galleries[0]){
										Iol.userPhotos._photos=[];
										Iol.userPhotos._flush();	
										return false;
									}
									
									var galleryKey = new GalleryKey(galleryObj.Galleries[0].GalleryKey.Key);
									var photoPage = new PhotoPage(galleryKey, 10, 1, 'TimeStampDescending');
									
									sendRequest(photoPage,function(data){                   
											
										//defining a common interface for the thumbnail property
										var mediaObjects=$.map(data.Responses[0].PhotoPage.Photos,function(item){
											item.thumbnail=item.Image.Medium;
											item.smallThumb=item.Image.Small;
											item.mediaUrl=item.Image.Large;
											return item;
										}) 
											
											Iol.userPhotos._photos=mediaObjects;
											Iol.userPhotos._flush();
										}
									)	
								}
							);
									
							break;
						
							case "string":
								//ajax request already sent; waiting for the response
								Iol.userPhotos._fn.push(fn);
							break;
						
							case "array":
								//the content is available, let's call the function
								fn(Iol.userPhotos._photos);
							break;
						}
					},
					_fn:[],
					_photos:null,
					_flush:function(){
						//looping through the fn array
						var fn=Iol.userPhotos._fn.shift();
						
						while(fn){
							fn(Iol.userPhotos._photos);
							fn=Iol.userPhotos._fn.shift();
						}
					}
				},		
                browserLanguage:{
                        language:(navigator.language||navigator.userLanguage).split("-")[0],    //getting the browser default language
                        country:(navigator.language||navigator.userLanguage).split("-")[1]      //getting the country part
                },
				searchContext:"Iol",
                docLanguage:document.documentElement.lang,
                geoData:null,
                languageMatrix:{
                        def:"en",
                        dz:"ar",        //Algeria
                        bh:"ar",        //Bahrain
                        td:"ar",        //Chad
                        km:"ar",        //Comoros
                        dj:"ar",        //Djibuti
                        eg:"ar",        //Egypt
                        er:"ar",        //Eritrea
                        et:"ar",        //Ethiopia
                        iq:"ar",        //Iraq
                        jo:"ar",        //Jordan
                        kw:"ar",        //Kuwait
                        lb:"ar",        //Lebanon
                        ly:"ar",        //Libya
                        mr:"ar",        //Mauritania
                        ma:"ar",        //Morocco
                        om:"ar",        //Oman
                        qa:"ar",        //Qatar
                        sa:"ar",        //Saudi Arabia
                        so:"ar",        //Somalia
                        sy:"ar",        //Syria
                        tn:"ar",        //Tunisia
                        ae:"ar",        //United Arab Emirates
                        ye:"ar"         //Yemen
                },
                
                rss:[],
                rssHnd:null,
                showRss:function(){                
                        
                        display=function(){
								clearTimeout(Iol.rssHnd);
								
                                var ticker=$("#rssFeed .ticker");
								ticker.find("a").remove();
								
                                var news=Iol.rss.shift();
                                Iol.rss.push(news);
								
                                var rssA=$("<a class='feed'></a>")
                                        .appendTo(ticker)
                                        .text(news.content)
                                        .attr("href",news.link)
                                        .attr("target","_blank")
										.hover(
											function(){
												clearTimeout(Iol.rssHnd);
												rssA
													.stop(false, false)
													.css({
															width:"100%",
															opacity:1,
															filter:""															
														 })
													
											},
											function(){
												clearTimeout(Iol.rssHnd);
												Iol.rssHnd=setTimeout(function(){
													rssA.fadeOut(3000,function(){display()})											
												},2000)
											}											
										)									
									
                                    rssA.animate({width:"100%"},5000,function(){
											clearTimeout(Iol.rssHnd);
											Iol.rssHnd=setTimeout(function(){
												rssA.fadeOut(3000,function(){
													display()
												})											
											},4000)
											
										})
                        }                        
                        display();
                },
                
                loadLayout:function(){
			//getting the page layout from the cookies
			var layout=$.parseJSON(Iol.readCookie(document.body.className));
			
			if(layout){                                
				$.each(layout.areas,function(index,area){
						var $area=$("#" + area.areaName);                        
						$.each(area.modules,function(index,module){
								$("#" + module)
								//.find("script").remove().end()
								.appendTo($area)
						})
						
				})
			}        
                },
                
                getlayoutObj:function(){
                        var dropAreas=$("div.dropArea").not("#referenceTable")
                        var layoutString='{ "pageName":"' + document.body.className + '",'
                                //+ '"bgColor":"' + $("#header h1").css("background-color") + '",'
                                + '"areas":[';
                        
                        layoutString+=$.map(dropAreas,function(item){
                                        var str='{"areaName":' + '"' + item.id + '",';
                                        str+='"modules"' + ":[";
                                        str+=$.map($(item).children(".customContainer"),function(item){
                                                if(!item.id){
													$(item).css("border","1px solid red")
													alert($(item).find("h2").text() + " is missing the ID!!" )
												}
                                                return '"' + item.id + '"'
                                        }).join(",");
                                        str+="]}";
                                        return str;                
                                }).join(",");
                        layoutString+="]}"
                        
                        return layoutString;
                },
                
                saveLayout:function(pageName,jsonString){
                        Iol.createCookie(pageName,jsonString,999)
                },
                
                createCookie:function(name,value,days) {
                        if (days) {
                                var date = new Date();
                                date.setTime(date.getTime()+(days*24*60*60*1000));
                                var expires = "; expires="+date.toGMTString();
                        }
                        var cookie=name+"="+value+expires+"; path=/;domain=.islamonline.net"
                        
                        document.cookie = cookie;
                },
                
                readCookie:function(name) {
                        var nameEQ = name + "=";
                        var ca = document.cookie.split(';');
                        for(var i=0;i < ca.length;i++) {
                                var c = ca[i];
                                while (c.charAt(0)==' ') c = c.substring(1,c.length);
                                if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
                        }
                        return null;
                },         
                
                eraseCookie:function(name) {
                        Iol.createCookie(name,"",-1);
                }                
        };
        
        
        (function(){
                var langPicker=$("#languagePicker");
                var hnd=null;
                
                langPicker.find("p")
					.click(function(){
						$(this).next().slideDown(100,
							function(){
								$(this).find("a:visible").focus()
							})
						}
					)
					
					//.text(langPicker.find("a." + Iol.docLanguage).css({display:"none"}).addClass("current").text())
                        
                langPicker.find("a")
					.blur(function(){
							var thisObj=this;
							hnd=setTimeout(function(){$(thisObj).parent().hide(0)},100)
					})
					.focus(function(){
							clearTimeout(hnd);
					})
					.click(function(){
						var lang=this.className.replace(" current","")
						Iol.createCookie("userLanguage",lang,999);
						$(this).parent().hide(0);
					})
				

                var userLanguage=Iol.readCookie("userLanguage");
				
				/*
				alert(userLanguage + " - " + Iol.docLanguage + " - " + Iol.browserLanguage.language)
				if(userLanguage){
					if(Iol.docLanguage!=userLanguage){
						location.href=(langPicker.find("a").not(".current").attr("href"));
					}						
				}else{
					if(Iol.docLanguage!=Iol.browserLanguage.language){					
						location.href=(langPicker.find("a").not(".current").attr("href"));
					}										
				}
				*/
        
        })();
		
	//activating the searchContext dropdown box
	(function(){
		$("#header li.searchContext select").change(function(){
			$(this.options).each(function(){
				if(this.selected){
					Iol.searchContext=this.value;
				}				
			})
			
		})
	
	
	})();

        
	//lightBox live events
	$("a.videoLightBox").live("click",function(){
			var flashvars={
					autostart:true,
					file:this.href
				},
				params={
					allowscriptaccess:"never",
					allowfullscreen:"false"
				},
				attributes={};                                                                
			
			var player=document.getElementById("videoPlayer")?$("#videoPlayer"):$("<div id='videoPlayer'></div>").appendTo($("#blackBox"));
			
			swfobject.embedSWF(slServerURL + "/ver1.0/content/swf/mediaplayer.swf", "videoPlayer", "500", "375", "10.0.0",params, flashvars, attributes);
			
			player=$("#videoPlayer")
			
			player.lightBox({
					width:520,
					onClose:function(){this.remove()},
					rtl:Iol.docLanguage=="ar"
			}).show();
			
			return false;                                
		}
	);
	
	$("a.photoLightBox").live("click",function(){
			var photoHolder=null,
				image=null,
				anchor=null;
			
			photoHolder=$("<div id='photoHolder'></div>").appendTo($("#blackBox"));                                        
			anchor=$("<a></a>").appendTo(photoHolder);
			
			image=$("<img />").appendTo(anchor);
			
			image.attr("src",this.href);
			
			photoHolder.lightBox({
					width:460,
					onClose:function(){
							this.remove()
					},
					rtl:Iol.docLanguage=="ar"
			}).show();
				  
			return false; 
		}
	);
	
	$("a.audioLightBox").live("click",function(e){
		
		e.preventDefault();
		if (soundManager.supported()) {
			// SM2 is ready to go!
			var p=$("<p></p>")
					.attr("id","audioPlayer")
					.text("loading...")
					.appendTo("#blackBox")
					.lightBox({
							width:238,
							onClose:function(){
									soundManager.destroySound("mySound");
									this.remove();
							}
					}).show();
					
			var mp3=soundManager.createSound({
				  id: 'mySound',
				  url: this.href,//'/js/Armstrong.mp3',
				  autoLoad: true,
				  autoPlay: false,
				  onload: function() {                                                                        
							p.text(this.attr("title"));
							mp3.play();
					   },
				  volume: 50
			});
			
		}else{
			alert("Audio function not available")
	}		
	});
        
        
        //RSS feed init
        (function(){
                var div=$("#rssFeed");
                var sources=$("#rssFeed div.sources");
                var hnd=null;
                var btn=div.find("a.button");
                
                btn
                        .append(
                                $("<span></span>").text(sources.find("a:first").addClass("current").text())      //how about getting the default RSS from the cookies?
                        )
                        .click(function(){
                                
                                if(!sources.is(":visible")){
                                        sources.slideDown(100,
                                                function(){
                                                        sources.find("a.current").eq(0).focus()
                                                });
                                }
                                return false;
                        });
                
                sources.find("a")
                        .focus(function(){
                                clearTimeout(hnd);
                                //console.log("focus: " + this.className + " " + this.title)
                        })
                        .blur(function(){
                                //console.log("blur: " + this.className + " " + this.title)
                                
                                var thisObj=this;
                                clearTimeout(hnd);
                                hnd=setTimeout(function(){sources.slideUp(100)},100)                                
                        })
                        .click(function(){
                                //console.log("click: " + this.className + " " + this.title)
                                $(this)
                                        .addClass("current")
                                        .siblings().removeClass("current")
                                        .blur();
                                
                                btn.find("span").text($(this).text());
                                //console.log("before focus")
                                btn.focus();
                                
                                go();                                
                                
                                return false;
                        })
                
                function go(){
                        
                        var ca=$("#rssFeed a.current");
                        if (ca.length==0) return false;
						
                        var     feedUrl="q=" + $("#rssFeed a.current").attr("href"),
                                url="http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?",
                                num="&num=6";   //results count
                        
                        $.ajax({
                                url:url,
                                data:feedUrl+num,
                                dataType:"jsonp",
                                error:function(xhr,err){alert(xhr.errorText||err)},
                                success:(function(data){
                                        Iol.rss=data.responseData.feed.entries										
                                        Iol.showRss();
                                })
                                
                        })
                }                
                go();        
        })();


	//upcomingEvents
	(function(){
		
		/* uncomment this to get the calendar	
		  
		//building the calendar
		var upE=$("div.upcomingEvents div.content")
			.empty()
			.aleCalendar({
				calEvents:{
					dayClick:function(dayObj){
						alert(dayObj.events[0].type)
					}
				}
			});

		
		var evPanels=$("<div class='eventsPanel'></div>").appendTo(upE.$objects)
		
		
		
		//getting the CoverIt Live events (using Yahoo pipes)
		var url="http://pipes.yahoo.com/pipes/pipe.run?_id=1da5cf2fcf652e07f2b339f61f34ed78&_render=json&_callback=cilCallBack";
			
		$.ajax({
				url:url,
				data:"dummy=" & (new Date().getTime()),
				dataType:"jsonp",
				error:function(xhr,err){alert(xhr.errorText||err)}					
		})
		
		cilCallBack=function(data){
			//mapping the events array
			var myEvents=[];				
			
			$.each(data.value.items,function(index,item){
				var dateArray=item.description.split("<br>");
				item.when=escape(dateArray[0]).replace("Date%3A%26nbsp%3B","") + " " + escape(dateArray[1]).replace("Time%3A%26nbsp%3B","").replace("%26nbsp%3BBST","").replace("AM"," AM").replace("PM"," PM");
				
				item.when=new Date(unescape(item.when));
				
				//setting the event type
				item.type="cil";
				myEvents.push(item)
			})
			
			//putting the events into the calendar
			upE.setEvents(myEvents);
		}			
		
		
		//getting the GoogleCalendar events	(using Yahoo pipes)			
		var url="http://pipes.yahoo.com/pipes/pipe.run?_id=91c93000b8a79ce72ceb1959b2c33d5d&_render=json",
			feedUrl="ical_feed=http%3A%2F%2Fwww.google.com%2Fcalendar%2Fical%2Ftk49nmsjlm9418g4rc07ar9qbg%2540group.calendar.google.com%2Fpublic%2Fbasic.ics&_callback=googleCalendarCallBack&dummy=" + (new Date().getTime());
		$.ajax({
				url:url,
				data:feedUrl,
				dataType:"jsonp",
				error:function(xhr,err){alert(xhr.errorText||err)}
		})
		
		googleCalendarCallBack=function (data){
			//mapping the events array
			var myEvents=[];
			
			$.each(data.value.items,function(index,item){
				var evDate=item["y:dtstart"];					
				item.when=new Date(evDate.year, evDate.month-1, evDate.day, evDate.hour, evDate.minute, evDate.second)
				
				evDate=item["y:dtend"];
				item.ends=new Date(evDate.year, evDate.month-1, evDate.day, evDate.hour, evDate.minute, evDate.second)
				
				//setting the event type
				item.type="google";
				myEvents.push(item)
			})			
			
			//putting the events into the calendar
			upE.setEvents(myEvents);
			
		}
*/			
		
		
	})();


	
	//coverIt Live!
	(function(){
		
		var CiL=$("div.CiL")
		if (CiL.length==0) return false;
		var content=CiL.find("div.content");
		var prog=new Date();
		
		var     feedUrl="q=http://rss.coveritlive.com/rss.php?username=ahmedb", 
				url="http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?",
				num="&num=10";   //results count

		
		$.ajax({
				url:url,
				data:feedUrl+num,
				dataType:"jsonp",
				error:function(xhr,err){alert(xhr.errorText||err)},
				success:(function(data){
					var ul=$("<ul></ul>")
						.addClass("topics")
						.appendTo(content.empty())
					$.each(data.responseData.feed.entries,function(index,item){
						$("<li></li>")
							.appendTo(ul)
							.append(
								$("<a></a>")
									.attr("href",item.link)										
									.text(item.title)
									.click(function(ev){
										ev.preventDefault();
										//window.open( URL, name [ , features [, replace ] ] )
										features=[
											"toolbar=0"	,
											"location=0",
											"menubar=0",
											"width=500",
											"height=620"
										]
										
										window.open(this.href,"CiL",features.join(","))
									})
							)
							.append(
								$("<span></span>")
									.text(item.content.split("<br>")[0])
							)
							
					})
				})
		})			
					
	})();

        
	//google search
        (function(){               
                
                $("#googleSearch").submit(function(){
                        var     $form=$(this),
                                key="&key=ABQIAAAAuuL7Mgz6sUxN1Z_Punm-HBRuoYcj20XRSsYh3m2la6N82rjvEBRtkWU4yatixldgImw7qxym0HwAvA",
                                rsz="&rsz=6",   //page size
                                cx=null,
                                target=null;
                                
                        var searchType=(Iol.searchContext=="Web")?"Web":Iol.searchContext + Iol.docLanguage; // [ Web | Iolen | Iolar ]
                        
                        switch (searchType){
                                case "Web":
                                        cx="";
                                        target="_blank"
                                break;
                        
                                case "Iolar":
                                        cx="&cx=010351501408193611183:tbjtmmaginu";
                                        target="_self";
                                break;
                        
                                case "Iolen":
                                        cx="&cx=010351501408193611183:gg5dw2csbxc";
                                        target="_self";
                                break;
                        
                        }                        
                        
                        var url="http://ajax.googleapis.com/ajax/services/search/web?v=1.0&callback=?" + rsz + key + cx;                        
                        
                        $.ajax({
                                url:url ,
                                data:$(this).serializeArray(),
                                dataType:"jsonp",
                                error:function(xhr,err){alert(xhr.statusText||err)},
                                success:function(data){
                                        var div=$("<div class='googleSearchResults'></div>").appendTo("#blackBox");
                                        var results=$("<div class='results'></div>").appendTo(div);
                                        
                                        if(data.responseData.results.length==0){
                                                var msg=$("<p></p>")
                                                        .addClass("errMsg")
                                                        .appendTo($("#blackBox"))
                                                        .text(dictionary.noResults[Iol.docLanguage]);
                                                
                                                msg.lightBox({
                                                                onClose:function(){this.remove()}
                                                        }).show()
                                                
                                                return false;
                                        }
                                        
                                        $.each(data.responseData.results,function(index,item){
                                                var gItem=$("<div class='gItem'></div>").appendTo(results);
                                                
                                                $("<a></a>")
                                                        .attr("href",item.url)
                                                        .attr("target",target)
                                                        .html(item.title)
                                                        .appendTo(gItem);
                                                 
                                                $("<p></p>")
                                                        .html(item.content)
                                                        .addClass("content")
                                                        .appendTo(gItem);
                                                
                                                $("<p></p>")
                                                        .text(item.visibleUrl)
                                                        .addClass("url")
                                                        .appendTo(gItem);                                               
                                        })
                                        
                                        
                                        var pag=$("<div class='pagination'></div>").appendTo(div)
                                        
                                        //pagination
                                        $.each(data.responseData.cursor.pages,function(index,item){
                                                var current=((item.label-1)==data.responseData.cursor.currentPageIndex);
                                                
                                                $("<a></a>")
                                                        .appendTo(pag)
                                                        .attr("href",(current===false)?"#" + item.start:"")
                                                        .addClass(current?"current":"")
                                                        .text(item.label)
                                                        .click(function(){
                                                                var page=parseInt(this.hash.replace("#",""))

                                                                if(page>-1){
                                                                        $form.find(".page").attr("value",page)
                                                                        div.remove();
                                                                        $form.submit()
                                                                }
                                                                
                                                                return false;
                                                        })
                                        })
                                        
                                        div.lightBox({
                                                width:600,
                                                onClose:function(obj){
                                                        this.remove();
                                                },
                                                rtl:Iol.docLanguage=="ar"
                                        }).show()
                                }                        
                        })                
                        return false;
                })
                .find("button").click(function(){$(this).closest("form").find(".page").attr("value",0)})
                
        })();



        
	$(window).load(function(){
                //displaying the H1 tag (used to avoid FOUT)
                //$("h1").css("text-indent",0);
                
                //removing the extra script tags added by the Forum widget
                $("#page script").remove();
                
                //updating the modules position
                Iol.loadLayout()
                
                //social networks links
                $("div.social a").each(function(){
                        this.href+=window.location;
                })
                
		
		//popup links
		$("a.popUp").live("click",function(ev){
			ev.preventDefault();
			//window.open( URL, name [ , features [, replace ] ] )
			features=[
				"toolbar=0"	,
				"location=0",
				"menubar=0",
				"width=1000",
				"height=700",
				"scrollbars=1"
			]					
			window.open(this.href,"PopUp",features.join(","))
		})
                
                //Google Analytics
				
				_gaq.push(['_setAccount', 'UA-15452105-2']);
				_gaq.push(['_trackPageview']);
				
				
				(function() {
					var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
					ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
					var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
				})();
				
                                    

				
                //ie6 update
                (function() {
			if ($.browser.msie && $.browser.version<7)
			 $.getScript('/js/ie6update.js', function() {						
				fixIe6(jQuery);
			});										
                })();				
				
		//Who's on
		(function(){
			if(document.getElementById("whoson_chat_link")){
				$.getScript('http://94.236.77.54:8080/include.js?domain=www.islamonline.net', function() {
					sWOInvite="N";							
					
					$(sWOImage).load(function(){
						if(sWOImage.width==1){
							//none is available for the chat
							var anchor=$("#whoson_chat_link")
							
							anchor.find("span")
								.text(dictionary[Iol.docLanguage].chatUnavailable)
								.filter(".clickToChat").hide(0);
								
							anchor.closest("div").addClass("chatAvailableOff");
								
						}
					})
					
					sWOTrackPage();
					
					//adding the "invite" stuff
					$.getScript(sWOUrl)						
				});
			}
		})();
								
                
        })
        
      
        function listEvents(data){
                // google Calendar callBack
                
        }
             
        
        //homePage archiveSearch tabs
        var tabs=null;
        
        $().ready(function(){
		
		//soundManager
                (function() {
				
			$.getScript('/js/soundmanager2-nodebug-jsmin.js', function(e) {
				eval(e)
				soundManager.url = '/js/soundmanager2.swf';
		       });
			
                })();
		
		/*
		//andling the back button
		$("a.back").click(function(){
			history.back();
			return false;
		});
		*/
		
		//adding scrollbars to multimedia page columns
		(function(){
			var uls=$("ul.multimediaFeatureList");
			
			$.each(uls,function(){
				var $this=$(this);
				
				//size check
				var containerSize=$this.innerHeight(),
				    contentSize=this.scrollHeight;
				

				// adding some padding-right if the container needs a scrollBar
				if(contentSize>containerSize){
					$this.closest("div").addClass("hasScrollBar")
				};

				
				var hasSB=addScrollBar({
					elemToScroll:$this,
					horizontal:false,
					className:"verSB",
					barContainer:null
				})
				
			})
			
		})();		
                
                //homepage main carousel                
                $("div.panelsCarousel").each(function(){
                                var $div=$(this);
                                var params=$div.getJsonComment();
                                
                                params.events={
                                        start:function(){
                                                // activating the corrispondent directLink
                                                linksUl.find("li").removeClass("current").eq(this.currentPanel.data("index")).addClass("current")
                                        },
                                        beforeChange:function(){
											// activating the corrispondent directLink
											linksUl.find("li").removeClass("current").eq(this.nextPanel.data("index")).addClass("current")											
										},
                                        change:function(){},
                                        pause:function(){}
                                }
                                
                                
                                var currentMinimap=null;
                                
                                //activating the main carousel
                                mainCarousel=$div.aleCarousel(params);
                                  
                                var clicked=false;
                                //direct links bar
                                //standard carousel panel
                                var linksUl=$('<div class="directLinks"><ul></ul></div>').appendTo($div).find("ul");
                                linksUl.hover(
                                                function(){$div.addClass("over")},
                                                function(){
                                                    if(!clicked){
                                                        hideMinimap(true);
                                                        $div.removeClass("over")
                                                    }
                                                }			    
                                        );
                                
                                $div.find("ul.panelsUl li.panelsLi").each(function(i){
                                        
                                        var i=i+1;
                                        var $li=$(this);
                                        var title=$li.find("h2.title").remove().text();
                                        var sectionLink=$li.find("div.minimap>h2 a");

                                        var imgSrc=$li.find("img.heroImage").attr("src");
                                        $('<li><a class="pin" href="#'+i+'"></a><a class="link" title="goto panel '+i+'"><img /><span class="title">'+title+'</span></a></li>')
                                                .appendTo(linksUl)                                            
                                                .find("a.link")
                                                        .attr("href",sectionLink.attr("href"))
                                                        .data("index",i)
							.click(function(ev){
								var $this=$(this);
								
								//if the minimap has been pined
								if (clicked){
									var $pin=$this.siblings(".pin")
									//and is not its minimap
									if (!$pin.hasClass("pined")){
									//removing the pined className from the previous
									
									$this.closest("ul").find("a.pined").removeClass("pined");
									$pin.addClass("pined");

									hideMinimap();
									
									var idx=$this.data("index")
									
									mainCarousel.goTo(idx-1,"snap")                                                            
									showMinimap(1)
									
									return false;
									}
									
								}
							})														
                                                        .hover(
                                                            function(){
                                                                
                                                                if(currentMinimap) currentMinimap.stop(true,true);							    
                                                                
                                                                if(!clicked){
                                                                    mainCarousel.pause();
                                                                    hideMinimap();
                                                                    
                                                                    var idx=$(this).data("index")
                                                                    
                                                                    mainCarousel.goTo(idx-1,"snap")                                                            
                                                                    showMinimap()
                                                                }				
                                                            },
                                                            function(){
                                                                if(!clicked){				    
                                                                    mainCarousel.start();					
                                                                }
                                                            }
                                                        ).end()
                                                .find("a.pin")
                                                        .click(function(){
                                                                if (clicked){
                                                                        $(this).removeClass("pined")
                                                                        clicked=false;
                                                                        
                                                                        currentMinimap.fadeTo(500,0.9);
                                                                        mainCarousel.start();                                                                        
                                                                                                                                                
                                                                        return false;
                                                                }
                                                                
                                                                clicked=true;
                                                                $(this).addClass("pined")                                                                
                                                                
                                                                mainCarousel.pause();
                                                                mainCarousel.goTo(this.hash.replace("#","")-1,"snap")
                                                                currentMinimap.fadeTo(500,1);
                                                                return false;
                                                        }).end()
                                                .find("img").attr("src",imgSrc)
                                        
                                        $li.find("div.minimap a.closeBtn").click(function(){
                                            clicked=false;
                                            hideMinimap()
                                            mainCarousel.start();
                                            
                                            $(this).closest("div.panelsCarousel")
                                                .removeClass("over")
                                                .find("div.directLinks li.current a.pined").removeClass("pined");
                                                
                                            return false;
                                        })
                                })                                
                                
                                
                                function showMinimap(opacity){
                                   
                                    //calculates the minimap position
                                    currentMinimap=mainCarousel.currentPanel.find("div.minimap").appendTo("#page");
                                   
                                    currentMinimap.data("parent",mainCarousel.currentPanel) 
                                    
                                    var pos=$div.offset(); //currentPanel.offset();
                                           
                                    var pTop=pos.top+$div.outerHeight();
                                    var pLeft=pos.left// + thisObj.width() + 25
                                    currentMinimap
                                        .css({
                                            top:pTop,
                                            left:pLeft,
                                            width:mainCarousel.currentPanel.closest("div.panelsCarousel").outerWidth()
                                        })
                                        
                                    
                                    currentMinimap.fadeTo(0,opacity||0.9)
                                };
                                
                                function hideMinimap(fx){
                        
                                    if(currentMinimap){
                                        var parent=currentMinimap.data("parent") 
                                        if(fx){
                                            currentMinimap.fadeOut(500,function(){currentMinimap.appendTo(parent)});
                                        }else{
                                            currentMinimap.fadeTo(0,0).appendTo(parent);
                                        }		
                                    }	    
                                };                                
                                
                                
                                //check the autoStart prop
                                if (params.autoStart){
                                        mainCarousel.start();										
                                }                        
                });
                
                
                //multiImages
                $("div.multiImage")
                        .aleCarousel({
                                    duration:8000,
                                    speed:1600,
                                    transitionFx:"slide", //slide|fade|swap|snap
									autostart:true
                        });
                
                
                
                
                //homepage archiveSearch panel                
                (function(){
                        tabs=$("#footer div.tabs").aleCarousel({
                                speed:600,
                                transitionFx:"swap"     //slide|fade|swap|snap             
                        });
						
						//removing the "handle" class from the articleSummary H2
						tabs.$objects.find("h2.handle").removeClass("handle showOnDesign");
                        
                        var tabsBar=$("<div class='tabBar'></div>").insertAfter(tabs.$objects.parent().find("h2.archiveTitle"))
                        
                        tabs.$objects.find("ul>li>h2").each(function(i){                                
                                $("<a href='#tab'></a>")
                                        .text($(this).text())
                                        .click(function(){
                                                tabs.goTo(i);
                                                $(this)
                                                        .addClass("current")
                                                        .siblings().removeClass("current");
                                                return false;
                                        })
                                        .appendTo(tabsBar);
                                $(this).remove();
                        })
                        
                        tabsBar.find("a:first").addClass("current")
                        
                        tabs.showResults=function(){								
                                $("#footer div.tabBar a").eq(1).click();
                        }
                        
                })();
                

                
                //multimedia page overlays
                (function(){
                        $("div.multimediaContainer ul.multimediaFeatureList a").live(
                                "click",
                                function(){
                                        var $a=$(this);
                                        var itemType=$a.closest("ul").attr("className").replace("multimediaFeatureList alternate ","");
                                        
                                        switch(itemType){
                                                case "audio":
                                                        if (soundManager.supported()) {
								// SM2 is ready to go!
								var p=$("<p></p>")
										.attr("id","audioPlayer")
										.text("loading...")
										.appendTo("#blackBox")
										.lightBox({
												width:238,
												onClose:function(){
														soundManager.destroySound("mySound");
														this.remove();
												}
										}).show();
										
								var mp3=soundManager.createSound({
									  id: 'mySound',
									  url: this.href,//'/js/Armstrong.mp3',
									  autoLoad: true,
									  autoPlay: false,
									  onload: function() {                                                                        
												p.text($a.closest("li").find("div.multimediaThumbDetails a").text());
												mp3.play();
										   },
									  volume: 50
								});
                                                        }else{
								alert("Audio function not available")
							}
                                                break;
                                        
                                                case "video":                                                                
                                                        var     flashvars={
                                                                        autostart:true,
                                                                        file:this.href
                                                                },
                                                                params={
                                                                        allowscriptaccess:"never",
                                                                        allowfullscreen:"false"
                                                                },
                                                                attributes={};                                                                
                                                        
                                                        var player=document.getElementById("videoPlayer")?$("#videoPlayer"):$("<div id='videoPlayer'></div>").appendTo($("#blackBox"));
                                                        
                                                        swfobject.embedSWF(slServerURL + "/ver1.0/content/swf/mediaplayer.swf", "videoPlayer", "500", "375", "10.0.0",params, flashvars, attributes);
                                                        
                                                        player=$("#videoPlayer")
                                                        
                                                        player.lightBox({
                                                                width:520,
                                                                onClose:function(){this.remove()},
                                                                rtl:Iol.docLanguage=="ar"
                                                        }).show();
                                                break;
                                        
                                                case "photo":
                                                        $("<img />")
                                                                .attr("src",this.href)
                                                                .css("max-width",440)
                                                                .appendTo($("#blackBox"))
                                                                .lightBox({
                                                                        width:460,
                                                                        onClose:function(){
                                                                                this.remove();
                                                                        }
                                                                }).show();                                                    
                                                break;                                        
                                        }
                                        
                                        return false;
                                }
                        )
                        
                })();
                
                
                //Videos & Photos upload
                (function(){
                        var lb=null;
                        
                        $("#uploadVideos").click(function(){
                                var title=this.title;
                                lb=$("#uploadBox")
                                .lightBox({
                                        width:400,
                                        onClose:function(){
                                                this.removeClass("video")
                                        },
                                        modal:true                                        
                                }).show();
                                
                                lb.addClass("video").find("h2").text(title);
                                
                                lb.find("form")
                                        .attr("action",videoUploadUrl)
                                        .find("input.id").attr("value",Iol.videoGalleryId)
                                
                                
                                //cancel button
                                $("#uploadBox button.close")
                                .unbind("click")
                                .click(function(){
                                        lb.closeIt();
                                })
                                
                                return false;
                        });
                        
                        $("#uploadPhotos").click(function(){
                                var title=this.title;
                                lb=$("#uploadBox")
                                .unbind("click")
                                .lightBox({
                                        width:400,
                                        onClose:function(){
                                                this.removeClass("photo")
                                        },
                                        modal:true                                        
                                }).show();
                                
                                lb.addClass("photo").find("h2").text(title);
                                
                                lb.find("form")
                                        .attr("action",photoUploadUrl)
                                        .find("input.id").attr("value",Iol.photoGalleryId)
                                
                                //cancel button
                                $("#uploadBox button.close").click(function(){
                                        lb.closeIt();
                                })
                                
                                return false;
                        });                        
                        
                                              
                        
                        $("#uploadBox form").submit(function(){
                                var $form=$(this);                                                                
                                var h2=$form.prev();
                                
                                h2.text("uploading...");                                                                                                
                                new iframe(
                                        this,
                                        {
                                                onComplete: function(request) {
                                                                                            
                                                        var msg=request.responseText;
                                                        if (msg.indexOf("Error:")>-1){
                                                                alert(msg);        
                                                        }
                                                        
                                                        h2.text($("#uploadBox span").text())
                                                        
                                                        $form
                                                                .find("button,input").removeAttr("disabled")
                                                                .end().get(0).reset();
                                                        
                                                        
                                                        
                                                        //removing the temporary iframe thing
                                                        $(request.parentNode).remove()
                                                }
                                        },
                                        1
                                )
                                
                                $form.find("button,input").attr("disabled","true");                        
                                
                                return false;
                        });                
                })();
                
                
                
                
                //login lightBox
                (function(){
                        var loginLB=null;
                        
                        //cheking if the user is logged in                                
                        var loginCookie=Iol.readCookie("hd")||Iol.readCookie("ad");

                        if(loginCookie){
                                var user=loginCookie.split("|")[1]
                                
                                var a=$("#header .loginBox a")
                                        .before($("<span></span>")
                                                .text(dictionary.welcome[Iol.docLanguage] + " " + user + " - "))                        
                                        .text(dictionary.logout[Iol.docLanguage])
                                        .click(function(){
                                                Iol.eraseCookie("hd");
                                                Iol.eraseCookie("at");
                                                location.reload()
                                        })
                                return false;
                        }                
                
                        //adding the info message
			$("<div class='row info'><p id='loginInfo' /></div>").prependTo($("#loginForm"));
			
                        
                        $("#header .loginBox a").click(function(){
                                
                                var lb=$("#loginBox");
                                
                                lb.find("div.error p").empty();
				lb.find("#loginInfo").empty();
				lb.find("input.required").removeClass("required");
                                lb.find("form").get(0).reset();
                                
                                loginLB=lb.lightBox({
                                        width:320,
                                        onClose:function(){
                                                this.appendTo($("#blackBox"))
                                        },
                                        rtl:Iol.docLanguage=="ar"
                                        
                                }).show() 
                                        
                        })
			
                        //loginBox ajax request
                        $("#blackBox #loginBox form").submit(function(){
                                var $this=$(this);
                                
                                var extraParams=[
                                        {name:"pagename",value:"Login"},
                                        {name:"action",value:"login"}
                                ];
                                var data=$.merge($this.serializeArray(),extraParams);
                                                                        
                                $.ajax({
                                        dataType:"json",
                                        url:this.action,
                                        data:data,
                                        error:function(xhr,error){alert("Ajax error: " + error||xhr.statusText)},
                                        success:function(data){
						if(data.ok) {
							var cookie=data.cookie.split(";")[0].split("=")
							Iol.createCookie(cookie[0],cookie[1],999)
							
							location.reload();
								
						} else {
							$this.find("div.error p").text(data.message);                                                                                                                
						} 
                                        }
                                
                                })
                                return false;
                        })
			
			
			//loginBox "forgot password" request
                        $("#loginBox .fPassword a").click(function(e){
				e.preventDefault();
				
				var 	theForm=$("#loginBox").find("form"),
					email=theForm.find("#loginEmail"),
					locale=theForm.find("input[name='locale']")
									
				if(email.attr("value").length==0){
					email.addClass("required").focus();
					return false;	
				}

				var extraParams=[
                                        {name:"pagename",value:"Login"},
                                        {name:"action",value:"reminder"},
					{name:"email",value:email.attr("value")},
					{name:"locale",value:locale.attr("value")}
                                ];
                                var data=extraParams;
				
				                                                                        
                                $.ajax({
                                        dataType:"json",
                                        url:theForm.attr("action"),
                                        data:data,
                                        error:function(xhr,error){alert("Ajax error: " + error||xhr.statusText)},
                                        success:function(data){
						if(!data){
							alert("Error: no feedback data from the server!");
							return false;
						}
						if(data.ok) {
							loginLB.closeIt();
							
							setTimeout(function(){
								var msg=$("<p></p>")
									.addClass("okMsg")
									.appendTo($("#blackBox"))
									.text(data.message)
							
								msg.lightBox({
									onClose:function(){
										this.remove();										
									}
								}).show()
							},500)
								
						} else {
							$("#loginError").text(data.message);                                                                                                                
						} 
                                        }
                                
                                })				
				
			})
			
                })();
                
                          
                


                // register lightBox
                (function(){
                        var registerLB=null;

                        //register lightBox
                        $("#header .registerBox a").click(function(){
				
                                var LB=$("#registerBox");
                                
                                LB.find("div.error p").empty();
                                LB.find("form").get(0).reset();
				
				
                                registerLB=LB.lightBox({
					width:380,
					onClose:function(){
						this.appendTo($("#blackBox"))
					},
					rtl:Iol.docLanguage=="ar"
				}).show()
                        })
			
			

                        $("#blackBox #registerBox form").submit(function(){
                                var $this=$(this);                        
                                var extraParams=[
                                        {name:"pagename",value:"Login"},
                                        {name:"action",value:"register"}
                                ];
                                var data=$.merge($this.serializeArray(),extraParams);
                                        
                                $.ajax({
                                        dataType:"json",
                                        url:this.action,
                                        data:data,
                                        error:function(xhr,error){alert("Ajax error: " + error||xhr.statusText)},
                                        success:function(data){
                                                if(data.ok) {
							
                                                                registerLB.closeIt();
                                                                setTimeout(function(){
                                                                        var msg=$("<p></p>")
                                                                                .addClass("okMsg")
                                                                                .appendTo($("#blackBox"))
                                                                                .text(data.message)
                                                                
                                                                        msg.lightBox({
                                                                                onClose:function(){
                                                                                        this.remove();
											/*
                                                                                        var cookie=data.cookie.split(";")[0].split("=")
                                                                                        Iol.createCookie(cookie[0],cookie[1],999)
                                                                                        
                                                                                        window.location.reload();
											*/
                                                                                        
                                                                                }
                                                                        }).show()
                                                                },500)
                                                        } else {
                                                                $this.find("div.error p").text(data.message);                                                                                                                
                                                } 
                                        }
                                })
                                
                                return false;
                        })
                })();
                
                
                
                (function(){
                        var formLB=null;
			var $form= $("#blackBox #contactUs form");

                        //register lightBox
                        $("a.contactUsLink, a.complaintsLink, a.suggestTopic, a.submitQuestion").click(function(ev){
							ev.preventDefault();
							var pageName = '';
							
							if ( this.className.indexOf('complaintsLink')>=0 )
							{
							   pageName = dictionary.complaints[Iol.docLanguage];
							   $form.data("action","complaints");
							}
							else if( this.className.indexOf('suggestTopic')>=0 )
							{
							   pageName = dictionary.suggestTopic[Iol.docLanguage];
							   $form.data("action","suggestTopic");
							}
							else if( this.className.indexOf('submitQuestion')>=0 )
							{
							   pageName = dictionary.submitQuestion[Iol.docLanguage];
							   $form.data("action","contact-us");
							}
							else
							{
							   pageName = dictionary.contactUs[Iol.docLanguage];
							   $form.data("action","submitQuestion");
							}
							
							$("#contactUs h2").html(pageName);
							
							//clearing the form
							$form.get(0).reset();
							$form.find("div.error p").text("");
							
							formLB=$("#contactUs").lightBox({
								width:360,
								rtl:Iol.docLanguage=="ar"
							 }).show()
							
							return false;
                        }) 

                        $form.submit(function(){
							                           
							var $this=$(this);
							
							
							$this.find("input.submit").attr("disabled",true)
							
							var extraParams=[
								{name:"pagename",value:"Mail"},
								{name:"action",value:$form.data("action")},
								{name:"lang",value:Iol.docLanguage}
							];
							var data=$.merge($this.serializeArray(),extraParams);
							$.ajax({
								dataType:"json",
								url:this.action,
								data:data,
								error:function(xhr,error){
									$this.find("input.submit").attr("disabled",false)
									
									alert("Ajax error: " + error||xhr.statusText)
								},
								success:function(data){
									$this.find("input.submit").attr("disabled",false);
									if(data.error!=0) {                                                                
										formLB.closeIt();
										setTimeout(function(){
											var msg=$("<p></p>")
												.addClass("okMsg")
												.appendTo($("#blackBox"))
												.text(data.message)
									
											msg.lightBox().show();
											
										},500)
									} else {
										$this.find("div.error p").text(data.message);                                                                                                                
									} 
								}
							})
							
							return false;
                        })
                })();
                   
               
                //setting up the ajaxForm function
                $("form.ajaxForm").each(function(){
                        var $this=$(this);                        
                        var settings=$this.getJsonComment();
                        var queryParams=null;
                        
                                                
                        $this.find("button").click(function(){
                                //if the user clicks on the Search button we have to reset the form.
                                formInit();
                        })
                        
                        $this.submit(function(ev){
				ev.preventDefault();
								
                                //building the query string
                                var formData=$.merge($(this).serializeArray(),settings.extraParams);
                                var queryParamsObj=[];
                                var keys=objKeys(queryParams);
                                
                                //mapping the queryParams object on the jQuery syntax
                                $.each(keys,function(index,item){
                                        queryParamsObj.push({
                                                name:item,
                                                value:queryParams[item]
                                        })
                                })
                                
                                formData=$.merge(formData,queryParamsObj);

				if(settings.onSearchResult){
						settings.onSearchResult();
				}
				
				
				
				$(settings.resultsContainer)
					.animate({height:"0px"},400,function(){$(this).css("height","auto")})
					.empty()
					.append(
						//showing the Loading anim.     
						$("<p class='loading'>Loading</p>")		
					);

                                $.ajax({
                                        data:formData,
                                        dataType:"text",
                                        error:function(xhr,error){alert("Ajax error: " + error||xhr.statusText)},
                                        success:function(data){
						data=eval("(" + data + ")");	//it's much quicker than jQuery parser
                                                var resultsDiv=$(settings.resultsContainer).empty();
												
						if(data.error){
							$("<p></p>")
								.addClass("error")
								.text(data.error)
								.appendTo(resultsDiv);
								return false;
						}
                                                
                                                var sortUl=resultsDiv.find("ul.sorters");
                                                if(sortUl.length==0){
                                                        sortUl=$("<ul class='sorters'></ul>").appendTo(resultsDiv);
                                                        //creating the sorters html
                                                        $.each(data.sortableBy,function(index,item){
                                                                var key=objKeys(item)[0];
                                                                $("<li></li>")
                                                                        .append(
                                                                                $("<a href='#" + key + "'>" + item[key] + "</a>")
                                                                                .click(function(){
                                                                                        var $a=$(this);
                                                                                        
                                                                                        $a.closest("ul").find("a").removeClass("active")
                                                                                        $a.addClass("active");
                                                                                        // setting the code to sort the results
                                                                                        queryParams.orderBy=key;
                                                                                        
                                                                                        //submitting the form
                                                                                        $this.submit();
                                                                                })
                                                                        ).appendTo(sortUl)
                                                        })                                                        
                                                }
                                                
                                                resultsDiv.find("ul.items").remove();
                                                var itemsUl=$("<ul class='items'></ul>").insertAfter(sortUl)
                                                
                                                var pagDiv=resultsDiv.find("div.paginator");
                                                if(pagDiv.length==0 && data.results.length>0){
                                                        pagDiv=$("<div class='paginator'></div>").appendTo(resultsDiv);
                                                        var pagUl=$("<ul></ul>").appendTo(pagDiv)
                                                        
                                                        //creating the paginator
                                                        var li=$('<li></li>').appendTo(pagUl);
                                                        $('<a class="arrowLeft" href="#page"><span>Previous page</span></a>')
                                                                .click(function(){
                                                                        var page=data.currentPage;
                                                                        if(page==1) return false;
                                                                        $(this).closest("ul").find("a.page").eq(page-1).click();
                                                                        return false;
                                                                })
                                                                .appendTo(li);
                                                                
                                                        for(var x=1;x<data.totalPages+1;x++){
                                                                var li=$('<li></li>').appendTo(pagUl);
                                                                $('<a class="page" href="#' + x + '">' + x +'</a>')
                                                                        .click(function(){
                                                                                        
                                                                                // setting the code to get the current page
                                                                                queryParams.page=this.hash.replace("#","");
                                                                                
                                                                                //submitting the form
                                                                                $this.submit();                                                                        
                                                                        })
                                                                        .appendTo(li)
                                                                        
                                                        }
                                                        var li=$('<li></li>').appendTo(pagUl);
                                                        $('<a class="arrowRight" href="#page"></a>')
                                                                .click(function(){
                                                                        var page=data.currentPage;
                                                                        if(page+1>data.totalPages) return false;
                                                                        $(this).closest("ul").find("a.page").eq(page).click()
                                                                        
                                                                        return false;
                                                                })
                                                                .appendTo(li);                                                        
                                                }
                                                
                                                //setting the current page class name
                                                pagDiv.find("a.page").removeClass("active").eq(data.currentPage-1).addClass("active")                                               
                                

                                                
                                                //creating the items list
                                                var oddRow=true;
						if(data.results.length==0){
							$("<li class='itemLi'></li>")
								.text(dictionary.noResults[Iol.docLanguage])
								.appendTo(itemsUl)
						}
						                                                
						$.each(data.results,function(index,item){
							
							
                                                        var key=objKeys(item)[0];
                                                        var li=$("<li class='itemLi'></li>")                                                                
                                                                .addClass(oddRow?"odd":"")
                                                                .appendTo(itemsUl)
                                                        oddRow=!oddRow;
                                                        
                                                        if(item.thumbnail){
                                                                $("<a class='thumbnail' href='" + item.url + "'></a>").append(
                                                                        $("<img src='" + item.thumbnail + "' />")       
                                                                ).appendTo(li)
                                                        }
                                                        var cont=$("<div class='cont'></div>").appendTo(li)
														var itemDate=item.date.split(",");
																																										
                                                        var artDate=new Date(itemDate[0],itemDate[1],itemDate[2])
														artDate=artDate.shortDate();
														
                                                        $("<span class='date'></span>").text(artDate).appendTo(cont);
                                                        $("<a class='title' href='" + item.url + "'></a>").text(myUnescape(item.title)).appendTo(cont) ;                                                        
                                                        
                                                        var filters=$("<ul class='filters'></ul>").appendTo(cont);
                                                        $.each(item.filters,function(index,item){
                                                                var li=$("<li></li>").appendTo(filters)

                                                                var key=objKeys(item)[0];
                                                                $("<a href=#'" + key + "'></a>")
                                                                        .text(item[key])
                                                                        .click(function(){
                                                                                // setting the code to filter the results
                                                                                queryParams.filter=key + "," + item[key];
                                                                                
                                                                                //submitting the form
                                                                                $this.submit();                                                                        
                                                                        })
                                                                        .appendTo(li);
                                                        })
                                                        
                                                        $("<p class='summary'></p>").text(myUnescape(item.summary)).appendTo(cont);							

                                                })

                                        },
                                        url:this.action
                                })
                                return false;
                        })
                        
                        //submitting the form on start up.
                        if (settings.autoRun){
                                formInit();
                                $this.submit();
                        }
                        
                        function formInit(){
                                //resetting the params
                                queryParams={
                                        filter:"",
                                        orderBy:"",
                                        page:""
                                };
                                
                                $(settings.resultsContainer).empty();
                        }
                });
                
                
                (function(){
                //videoCarousel
                    var	$divObj=$("div.videoCarousel");
				      
					if($divObj.length>0){
						//showing the Loading anim.     
						$("<p class='loading'>Loading</p>").appendTo($divObj);
						
						Iol.userVideos.enqueue(function(data){
							onVideoResults(data,$divObj)
						})						
					}
                        
                //************                
                })();                
                
                (function(){
                //photoCarousel				
					var	$divObj=$("div.photoImages");
					
					if($divObj.length>0){
						//showing the Loading anim.     
						$("<p class='loading'>Loading</p>").appendTo($divObj);
						
						Iol.userPhotos.enqueue(function(data){
							onPhotoResults(data,$divObj)
						})						
					}
                 //************
                })(); 
				 
                 //advanced search panel                        
				$("div.search a.advancedSwitch").click(function(){
						$(this)
								.toggleClass("open")
								.next("div.advancedPanel").toggle();
								
						return false;
				});
                //************
                
                
                (function(){
                //recent Photos and Videos
					var	$videoDivObj=$("div.recentVideos .content");				
					
					if($videoDivObj.length>0){
						//showing the Loading anim.     
						$("<p class='loading'>Loading</p>").appendTo($videoDivObj);
						
						$videoDivObj.each(function(){
							var $this=$(this)
							Iol.userVideos.enqueue(function(data){
								$this.empty()
								doRecentHtml($this,data,"videoLightBox")
									
							})					
						})
					}
					
					var	$photoDivObj=$("div.recentPhotos .content");				
					
					if($photoDivObj.length>0){
						//showing the Loading anim.     
						$("<p class='loading'>Loading</p>").appendTo($photoDivObj);
						
						$photoDivObj.each(function(){
							var $this=$(this)
							Iol.userPhotos.enqueue(function(data){
								$this.empty()
								doRecentHtml($this,data,"photoLightBox")
									
							})					
						})
					}					
					
					
					function doRecentHtml($this,data,className){
						var ul=$("<ul></ul>")										
							.appendTo($this)
							.addClass("topics")
							
						$.each(data,function(index,item){
							
							//displaying just the first 5 items
							if(index>4) return false;
							
							$("<li></li>")
							.appendTo(ul)
							.append(
								$("<a></a>")
									.addClass(className)
									.attr({
										href:item.mediaUrl,
										src:item.thumbnail,
										title:item.Author.DisplayName
									})
									.append(
										$("<img />")
											.attr({
												src:item.thumbnail,
												title:item.Author.DisplayName
											})
									)
							)
							.append(
								$("<span />")
									.attr({
										className:"author",
										innerHTML:dictionary.publishedBy[Iol.docLanguage] + item.Author.DisplayName
									})
							)
							.append(
								$("<span />")
									.attr({
										className:"author",
										innerHTML:dictionary.uploadedOn[Iol.docLanguage] + item.CreatedOn
									})
							)									
						})					
					}
                 //************
                })();                 	
               
                
                //Pluck Modules
                
                (function(){
                // most commented discussions
			
			var	elem=$("div.mostCommented"),
				searchSections = new Array(),
				searchCategories = new Array(),
                        	activityDisco = new Activity("Commented"),
                        	contentTypeDisco = new ContentType("Discussion"), //discussion
                        	limitToContributorsDisco =  new Array(),
                        	filterBySiteofOrigin = false;
				
			if (elem.length>0){
				var mostDiscussed=new DiscoverContentAction(searchSections,  searchCategories, limitToContributorsDisco, activityDisco,  contentTypeDisco, 15, 10, filterBySiteofOrigin);                
				
				sendRequest(mostDiscussed,function(data){
					doHtml("div.mostCommented",data,true)
				})
			}
                //************
                })();
                
                (function(){
                // most recent discussions
			var elem=$("div.recentDiscussion");
                        var searchSections = new Array();
                        var searchCategories = new Array();
                        var activityDisco = new Activity("Recent");
                        var contentTypeDisco = new ContentType("Discussion"); //discussion
                        var limitToContributorsDisco =  new Array();
                        var filterBySiteofOrigin = false;
			if (elem.length>0){
				var mostDiscussed=new DiscoverContentAction(searchSections,  searchCategories, limitToContributorsDisco, activityDisco,  contentTypeDisco, 15, 10, filterBySiteofOrigin);                
				
				sendRequest(mostDiscussed,function(data){
					doHtml("div.recentDiscussion",data,true)
				})
			}
                //************
                })();
                
                (function(){
                // most commented blogs
			var elem=$("div.commentedBlog");
                        var searchSections = new Array();
                        var searchCategories = new Array();
                        var activityDisco = new Activity("Commented");
                        var contentTypeDisco = new ContentType("BlogPost"); //discussion
                        var limitToContributorsDisco =  new Array();
                        var filterBySiteofOrigin = false;
			
			if (elem.length>0){
				var mostDiscussed=new DiscoverContentAction(searchSections,  searchCategories, limitToContributorsDisco, activityDisco,  contentTypeDisco, 15, 10, filterBySiteofOrigin);                
				
				sendRequest(mostDiscussed,function(data){
					doHtml("div.commentedBlog",data)
				})
			}
                //************
                })();
                
                (function(){
                // most commented articles
			var elem =$("div.commentedArticles")
                        var searchSections = new Array();
                        var searchCategories = new Array();
                        var activityDisco = new Activity("Commented");
                        var contentTypeDisco = new ContentType("Article"); //discussion
                        var limitToContributorsDisco =  new Array();
                        var filterBySiteofOrigin = false;
			
			if (elem.length>0){
				var mostDiscussed=new DiscoverContentAction(searchSections,  searchCategories, limitToContributorsDisco, activityDisco,  contentTypeDisco, 15, 10, filterBySiteofOrigin);                
				
				sendRequest(mostDiscussed,function(data){
									$.each(data.Responses[0].DiscoverContentAction.DiscoveredContent,function(index,item){
										item.extraData=item.Comments.NumberOfComments + " " + (item.Comments.NumberOfComments>1?dictionary.comments[Iol.docLanguage]:dictionary.comment[Iol.docLanguage])
									})
									
					doHtml("div.commentedArticles",data)
				})
			}
                //************
                })();
                
                        
                (function(){
                // most active community group
			var elem=$("div.activeGroup");
                        var searchSections = new Array();
                        var searchCategories = new Array();
                        var activityDisco = new Activity("MostActive");
                        var contentTypeDisco = new ContentType("CommunityGroup"); //discussion
                        var limitToContributorsDisco =  new Array();
                        var filterBySiteofOrigin = false;
			
			if (elem.length>0){
				var mostDiscussed=new DiscoverContentAction(searchSections,  searchCategories, limitToContributorsDisco, activityDisco,  contentTypeDisco, 15, 10, filterBySiteofOrigin);                
				
				sendRequest(mostDiscussed,function(data){
					doHtml("div.activeGroup",data)
				})
			}		
                //************
                })();
                
                
                (function(){
                // recent persona
			var elem=$("div.recentPersonas");
                        var searchSections = new Array();
                        var searchCategories = new Array();
                        var activityDisco = new Activity("Recent");
                        var contentTypeDisco = new ContentType("Persona"); //discussion
                        var limitToContributorsDisco =  new Array();
                        var filterBySiteofOrigin = false;
			if (elem.length>0){
				var mostDiscussed=new DiscoverContentAction(searchSections,  searchCategories, limitToContributorsDisco, activityDisco,  contentTypeDisco, 15, 10, filterBySiteofOrigin);                
				
				sendRequest(mostDiscussed,function(data){
					doHtml("div.recentPersonas",data)
				})
			}
                //************
                })();
                               
                
                var doHtml=function(selector,data,popup){
                        
                        if(!data.Responses[0]) return false;
                        var     div=$(selector),
                                articles=data.Responses[0].DiscoverContentAction.DiscoveredContent,
                                authors=data.Responses[0].DiscoverContentAction.AssociatedOwners;
                        //console.dir(authors)
                        
                        var ul=$("<ul class='topics'></ul>").appendTo(div)
                        $.each(articles,function(index,article){
                                
                                //getting the author from the array
                                var author=$.map(authors,function(item){                                                        
                                                return item.UserKey.Key==article.AssociatedOwnerKey.Key?item:null;
                                        })[0];
                                var authorName=author?author.DisplayName:null;
                                
                                var li=$("<li></li>").appendTo(ul)
                                       
                                $("<a></a>")
										.addClass(popup?"popUp":"")
                                        .text(article.PostTitle|| article.PageTitle || article.Title || article.DiscussionTitle || article.DisplayName || "missing_title")
                                        .attr("href",article.Url || article.PageUrl || article.CommunityGroupUrl || article.DiscussionUrl || article.PersonaUrl || "#missing_link")
                                        .appendTo(li)
                                        
                                var autDiv=$("<div></div>")
                                        .addClass("author")
                                        .append(
                                                $("<p></p>").text(article.extraData || authorName || article.LastUpdated_UTC || "Author missing")
                                        )
                                        .appendTo(li);
                                        
                        })
                           
                }
                 
                                
                //styling the table rows / li elements
                $("table tbody tr:odd").addClass("odd");
                $("ul.alternate li:odd").addClass("alternateBg");
                
                 
                
                (function(){
                //customContainers
                        var     customContainers=$("div.customContainer"),
                                dropAreas=$("div.dropArea"),
                                ccPosition=null,
                                ghostDiv=$("<div class='ghostDiv'></div>").appendTo(document.body),
                                draggingContainer=null,
                                clickPosition=null,
                                isMoving=false,
                                dblClick=false;
                                
                        customContainers.find(".handle")
                                .live("dblclick",function(event){                                                                                
                                        $(this).nextAll().slideToggle(300)                                        
                                        return false;                                        
                                })
                                
                                .live("mousedown",function(event){
					event.preventDefault();
					
                                        if(isMoving) return false;                                                                                
                                        
                                        $(this).addClass("grabbed");
                                        
                                        $(document.body).bind("mousemove",dragging);                                                                
                                        
                                        draggingContainer=$("<div class='dragAndDropModule'></div>")
                                                .addClass(Iol.docLanguage=="ar"?"rtl":"")
                                                .insertBefore($(this).closest("div.customContainer"))
                                                                                
                                        $(this).closest("div.customContainer").appendTo(draggingContainer)
                                                
                                        
                                        
                                        ghostDiv .height(draggingContainer.innerHeight()-2)
                                                .css({
                                                        "margin":       draggingContainer.css("margin-top")+" "+
                                                                        draggingContainer.css("margin-right")+" "+
                                                                        draggingContainer.css("margin-bottom")+" "+
                                                                        draggingContainer.css("margin-left")
                                                })
                                                .show(0);
                                        
                                        ghostDiv.insertBefore(draggingContainer)
                                        draggingContainer.detach();
                                        
                                        clickPosition={
                                                left:event.pageX-ghostDiv.offset().left,
                                                top:event.pageY-ghostDiv.offset().top
                                        }
                                        
                                        draggingContainer
                                                .css({
                                                        width:ghostDiv.outerWidth(),
                                                        position:"absolute",
                                                        left:ghostDiv.offset().left,
                                                        top:ghostDiv.offset().top
                                                })
                                                .fadeTo(0,0.7)
                                                .appendTo(document.body);
                                        
                                        //removing the selected container from the array
                                        customContainers=customContainers.not(draggingContainer.children())
                                        
                                        //caching the other panels coordinates
                                        ccPosition=$.map(customContainers,function(item,index){
                                                                item=$(item);
                                                                pos=item.offset();
                                                                return {
                                                                        x:pos.left,
                                                                        y:pos.top,
                                                                        w:item.innerWidth(true),
                                                                        h:item.innerHeight(true),
                                                                        el:item
                                                                }
                                                        })                                        
                                })
                                .live("mouseup",function(){
                                        
                                        if(isMoving) return false;
                                        isMoving=true;
                                        
                                        $(this).removeClass("grabbed");
                                        $(document.body).unbind("mousemove",dragging);
                                        
                                        if(!draggingContainer) return false;
                                        draggingContainer
                                                .animate({
                                                        left:ghostDiv.offset().left,
                                                        top:ghostDiv.offset().top,
                                                        width:ghostDiv.innerWidth(true),
                                                        opacity:1
                                                },200,function(){
                                                        
                                                        
                                                        isMoving=false;
                                                        /*
                                                        draggingContainer
                                                                .css({
                                                                        width:"auto",
                                                                        position:"static"
                                                                });                                                        
                                                        */      
                                                                draggingContainer
                                                                        .children()
                                                                        .insertBefore(ghostDiv)
                                                                        
                                                                draggingContainer.remove();
                                                                        
                                                                

                                                                ghostDiv.detach();
                                                                var layout=Iol.getlayoutObj();                                                        
                                                                var layoutObj=$.parseJSON(layout);
                                                                
                                                                Iol.saveLayout(layoutObj.pageName,layout,999);
                                                })
                                        
                                        //removing the selected container from the array
                                        customContainers=customContainers.add(draggingContainer.children());
                                })
                                
                        
                        function dragging(event){                        
                                var     x=event.pageX,
                                        y=event.pageY;
                                        
                                //moving the container around
                                draggingContainer.css({
                                        left:x-clickPosition.left,
                                        top:y-clickPosition.top
                                })
                                                        
                                //checking the container position
                                $.each(ccPosition,function(index,item){
                                        
                                        //is it hovering this container?
                                        if(x>item.x && x<item.x+item.w){
                                                //is it on the top half?
                                                if(y>item.y && y<item.y+item.h/2){
                                                        if(!item.el.prev().hasClass("ghostDiv")){
                                                                
                                                                ghostDiv.insertBefore(item.el)
                                                                //refreshing the other panels coordinates
                                                                ccPosition=$.map(customContainers,function(item,index){
                                                                                        item=$(item);
                                                                                        pos=item.offset();
                                                                                        return {
                                                                                                x:pos.left,
                                                                                                y:pos.top,
                                                                                                w:item.innerWidth(true),
                                                                                                h:item.innerHeight(true),
                                                                                                el:item
                                                                                        }
                                                                                })
                                                                return false;
                                                        }
                                                }else if(y>item.y+item.h/2 && y<item.y+item.h){
                                                // or on the bottom one?
                                                        if(!item.el.next().hasClass("ghostDiv")){
                                                                ghostDiv.insertAfter(item.el);
                                                                //refreshing the other panels coordinates
                                                                ccPosition=$.map(customContainers,function(item,index){
                                                                                        item=$(item);
                                                                                        pos=item.offset();
                                                                                        return {
                                                                                                x:pos.left,
                                                                                                y:pos.top,
                                                                                                w:item.innerWidth(true),
                                                                                                h:item.innerHeight(true),
                                                                                                el:item
                                                                                        }
                                                                                })
                                                                return false;
                                                        }                                        
                                                }
                                        }
                                })
                                
                                //if we didn't place the ghostDiv yet...                        
                                $.each(dropAreas,function(index,item){
                                        var item=$(item);
                                        if(item.find("div.ghostDiv").length==0){
                                                var pos=item.offset();
                                                //if the cursor is hoverig this column
                                                if(x>pos.left && x<pos.left+item.innerWidth(true)){
                                                        ghostDiv.appendTo(item);
                                                        //refreshing the other panels coordinates
                                                        ccPosition=$.map(customContainers,function(item,index){
                                                                                item=$(item);
                                                                                pos=item.offset();
                                                                                return {
                                                                                        x:pos.left,
                                                                                        y:pos.top,
                                                                                        w:item.innerWidth(true),
                                                                                        h:item.innerHeight(true),
                                                                                        el:item
                                                                                }
                                                                        })                                                                                                        
                                                        return false;
                                                }
                                        }
                                })
                                
                        }
                })();
                //***********                
                
                
                $.getJSON("http://www.geoplugin.net/json.gp?jsoncallback=?",function (data) {
                        Iol.geoData=data
                });                 
        })	
                 


        function sendRequest(request,callback,srvUrl) {
            var requestBatch = new RequestBatch();
            requestBatch.AddToRequest(request);
            requestBatch.BeginRequest(srvUrl||serverUrl, callback);
        }
        
        function onVideoResults(data,$divObj){                
                				
                if(data.length==0){
                        $divObj.empty();
                        $("<p></p>")
                                .text(dictionary.noResults[Iol.docLanguage])
                                .css({color:"#fff","font-size":"1.2em","padding":10})
                                .appendTo($divObj);
                        return false;
                }
                                   
				showGallery(data,$divObj,"videoLightBox")
        }
        
        function onPhotoResults(data,$divObj){
                
                if(data.length==0){
                        $divObj.empty();
                        $("<p></p>")
                                .text(dictionary.noResults[Iol.docLanguage])
                                .css({color:"#fff","font-size":"1.2em","padding":10})
                                .appendTo($divObj);
                        return false;
                }			
					
				showGallery(data,$divObj,"photoLightBox")
        }        
    
        
        function showGallery(mediaArray,$divObj,objClass){
            //translating a video objects array into the html carousel
            
                $divObj.each(function(){
                        
                        var $divObj=$(this)
                        
                        var settings={
                                fxSpeed:200,
                                zoomAmount:20,
                                origWidth:100,
                                ratio:3/4,
                                autoScroll:true
                        }
                        
                        $.extend(settings,$divObj.getJsonComment())                        
                        
                        $divObj.empty();
                        
                        
                        var ul=$("<ul></ul>").appendTo($divObj);                
                        
                        $(mediaArray).each(function(){
                                var mediaObj=this;
                                var li=$("<li></li>").appendTo(ul)	
                                $("<img />")
                                        .attr("src",mediaObj.thumbnail)
                                        .attr("alt","Video by " + mediaObj.Author.DisplayName)
                                        .css({
                                                "margin-top":settings.zoomAmount*settings.ratio/2,
                                                "margin-bottom":settings.zoomAmount*settings.ratio/2,
                                                "margin-left":settings.zoomAmount/2,
                                                "margin-right":settings.zoomAmount/2
                                                
                                        })
                                        .appendTo(
                                                $("<a></a>")
                                                        .attr("href",mediaObj.mediaUrl)
                                                        .attr("title","Content by " + mediaObj.Author.DisplayName)
                                                        .hover(
                                                                function(){zoomIn(this,settings)},
                                                                function(){zoomOut(this,settings)}
                                                        )
                                                        .focus(function(){zoomIn(this,settings)})
                                                        .blur(function(){zoomOut(this,settings)})
														.addClass(objClass)
                                                        .appendTo(li)
                                        )
                        });
                    
                        $().ready(function(){                
                                var totalWidth=0;
                                ul.children("li").each(function(){
                                        var     $this=$(this),
                                                $img=$this.find("img");
                                        
                                        $img
                                                .css({
                                                        width:settings.origWidth,
                                                        height:settings.origWidth*settings.ratio
                                                })
                                                
                                        totalWidth+=$this.outerWidth(true);               
                                })
                                var finalWidth=totalWidth + parseInt($divObj.css("padding-left")) + parseInt($divObj.css("padding-right"));
                                ul.css({width:finalWidth})
                                ul.data("origWidth",finalWidth)
                                
                                if (settings.autoScroll){
                                        ul.autoScroll();
                                }else{
                                        var $contDiv=$("<div></div>")
                                                .addClass("content")
                                                .appendTo($divObj)
                                                
                                        ul.appendTo($contDiv)
                                        $("<a href='#prev'><span>prev</span></a>")
                                                .addClass("prev")
                                                .attr("tabIndex",-1)
                                                .insertBefore($contDiv)
                                                .click(function(){
                                                        $contDiv.animate({scrollLeft:$contDiv.scrollLeft()-settings.origWidth-settings.zoomAmount},200)
                                                        return false;
                                                })
                                                
                                        $("<a href='next'><span>next</span></a>")
                                                .addClass("next")
                                                .attr("tabIndex",-1)
                                                .insertAfter($contDiv)
                                                .click(function(){
                                                        $contDiv.animate({scrollLeft:$contDiv.scrollLeft()+settings.origWidth+settings.zoomAmount},200)
                                                        return false;
                                                })
                                }                                                                
                        })
                        
                        //if(document.body.className=="basePage") createToolBar();
                        
                })
                
                function zoomIn(obj,settings){
                        var $this=$(obj).find("img");
                   
                        $this
                                .stop()
                                .animate(
                                        {       width:settings.origWidth+settings.zoomAmount,
                                                height:(settings.origWidth+settings.zoomAmount)*settings.ratio,
                                                "margin-top":0,
                                                "margin-bottom":0,
                                                "margin-left":0,
                                                "margin-right":0                                                                                        
                                        },settings.fxSpeed);
                        
                        return false;
                              
                }
                
                function zoomOut(obj,settings){
                        var $this=$(obj).find("img");
                        $this
                                .stop()
                                .animate(
                                        {       width:settings.origWidth,
                                                height:settings.origWidth*settings.ratio,
                                                "margin-top":settings.zoomAmount*settings.ratio/2,
                                                "margin-bottom":settings.zoomAmount*settings.ratio/2,
                                                "margin-left":settings.zoomAmount/2,
                                                "margin-right":settings.zoomAmount/2                                                                                        
                                        },settings.fxSpeed)
                        return false;
                }            

        }
        

function createToolBar(){
        $("#referenceTable .colours a").each(function(){
                var $this=$(this);
                $this
                        .css({"background-color": this.hash})
                        .click(function(){
                                $(".themedBG").css({"background-color": this.hash,"border-color": this.hash})
                                $(".themedColor").css({"color": this.hash})
                                
                                var layout=Iol.getlayoutObj();                                                        
                                var layoutObj=$.parseJSON(layout);
                                
                                Iol.saveLayout(layoutObj.pageName,layout,999);
                                return false;
                        })
        })
        
        var     refTable= $("#referenceTable div.modules").empty(),
                modules=$("div.customContainer").sort(function(a, b){
                        var     modA=a.id.toLowerCase(),
                                modB=b.id.toLowerCase()
                        
                        if (modA < modB) //sort string ascending
                                return -1 
                        if (modA > modB)
                                return 1
                        
                        return 0 //default return value (no sorting)
                })
               
        modules.appendTo(refTable);
        
        
        // showHide behaviour
        $("#referenceTable p").click(function(){
                $(this).nextAll().toggle();
        })       
}
