$(document).ready(function () {
	var readQuran = $("#read-quran");
	var page1 = readQuran.find(".page-1");
	var page2 = readQuran.find(".page-2");
	var player1 = readQuran.find(".play-1");
	var player2 = readQuran.find(".play-2");
	
	var loading1 = page1.find(".loading");
	var loading2 = page2.find(".loading");
	
	var mushafControl = $("[name=read-quran-mushaf-control]");
	var suraControl = $("[name=read-quran-sura-control]");
	var juzControl = $("[name=read-quran-juz-control]");
	var hizbControl = $("[name=read-quran-hizb-control]");
	var pageControl = $("[name=read-quran-page-control]");
	var pageControlButton = $("[name=read-quran-page-button-control]");

    var imagesCached = new Object();
    
	theWidth = readQuran.width();
	countImages = 606;
	
	var YLoading1Center = page1.position().top+page1.height()/2-loading1.height()/2;
	loading1.data("Repaier",function(){$(loading1).css({left:page1.position().left + page1.width()/2-loading1.width()/2,top:YLoading1Center,"z-index":1});})
	loading2.data("Repaier",function(){$(loading2).css({left:page2.position().left + page2.width()/2-loading2.width()/2,top:YLoading1Center,"z-index":1});})
	
	loading1.data("Repaier")();
	loading2.data("Repaier")();
	
	loading1.animate({"opacity":0});
	loading2.animate({"opacity":0});
	
	var YPlayerCenter = page1.position().top+page1.height()/2-player2.height()/2;
	player1.css({"left":page1.position().left + page1.width() - player1.width()-5,"top":YPlayerCenter,"z-index":1})
	player2.css({"left":page2.position().left+5,"top":YPlayerCenter,"z-index":1})
	
	player1.animate({"opacity":0.3});
	player2.animate({"opacity":0.3});
	
	player1.mouseenter(function(){ShowPlay(this)});
	player1.mouseleave(function(){HidPlay(this)});
	player2.mouseenter(function(){ShowPlay(this)});
	player2.mouseleave(function(){HidPlay(this)});
	
	var waitedImages = 0;
	var hideReadQuran = false;
	player1.click(function(){
		if(page2.data("currentImage") == 0)
		{
			page1.data("currentImage",countImages-1);
			page2.data("currentImage",countImages);
		}
		else
		{
			page1.data("currentImage",page1.data("currentImage")-2);
			page2.data("currentImage",page2.data("currentImage")-2);		
		}
		if(page2.data("currentImage") == countImages || page2.data("currentImage") == 0)
			hideReadQuran = true;
		waitedImages = 2;
		LoadImage(GetUrl($(page1).data("currentImage")),$(page1));
		LoadImage(GetUrl($(page2).data("currentImage")),$(page2));});
		
	player2.click(function(){
		if(page1.data("currentImage") == -1 || page2.data("currentImage") == countImages)hideReadQuran = true;
			
		if(page2.data("currentImage") == countImages){page1.data("currentImage",-1);	page2.data("currentImage",0);}
		else{page1.data("currentImage",page1.data("currentImage")+2);page2.data("currentImage",page2.data("currentImage")+2);}
		
		waitedImages = 2;		
		LoadImage(GetUrl($(page1).data("currentImage")),$(page1));
		LoadImage(GetUrl($(page2).data("currentImage")),$(page2));
	});
	
	
	var urlParams = GetUrlParameters();
	if(urlParams["mushafId"] != undefined)var item = $("[id=read-quran-mushaf-"+ urlParams["mushafId"] +"]").get(0);
	if(urlParams["suraId"] != undefined)var item = $("[id=read-quran-sura-"+ urlParams["suraId"] +"]").get(0);
	if(urlParams["juzId"] != undefined)var item = $("[id=read-quran-juz-"+ urlParams["juzId"] +"]").get(0);
	if(urlParams["hizbId"] != undefined)var item = $("[id=read-quran-hizb-"+ urlParams["hizbId"] +"]").get(0);
	if(item != undefined){hideReadQuran = true;ChangeByPage(item.value);item.selected = true;}
	else{page1.data("currentImage",-3);page2.data("currentImage",-2);player2.click();}
	
	
	function ShowPlay(item){$(item).stop(true);$(item).animate({"opacity":.6},300);}
	function HidPlay(item){$(item).animate({"opacity":0.3},300);}
	
	function LoadImage(url,item){
		if(item.data("currentImage") < 0 || item.data("currentImage") > countImages)return 0;
		RepairControls(page1.data("currentImage"));
		if(hideReadQuran)
		{
			readQuran.animate({"opacity":0},300,function(){readQuran.css("visibility","hidden");});
			hideReadQuran = false;
		}
		var loading = item.find(".loading");
		loading.stop(true);
		loading.animate({"opacity":1},300);
		var i = new Image();
		i.src = url;
		if(navigator.appName == "Opera")OnLoad();
		else if(imagesCached[url]) OnLoad();
        else $(i).load(function(){OnLoad()});
		
		function OnLoad(){
            imagesCached[url] = true;
			var image = $("<img src='"+url+"'/>");
			image.css({"position":"absolute",left:item.position().left,top:item.position().top})
			image.animate({"opacity":0},function(){
				item.append(image);
				image.animate({"opacity":1},500,function(){
					item.css("background","#eee url("+url+") no-repeat");
					image.remove();
					Check();
				});
			});
			loading.animate({"opacity":0},300);
		}
	}
	
	function Check(){
		if(page1.data("currentImage") < 0){
			page1.hide();
			readQuran.width(theWidth/2+7);
			waitedImages--;
		}
		else{
			page1.show();
			readQuran.width(theWidth)
		}
		loading1.data("Repaier")();
		loading2.data("Repaier")();
		waitedImages--;
		if(waitedImages==0){readQuran.css("visibility","visible");readQuran.animate({"opacity":1},300);}
	}
	function GetUrl(number)
	{
		number = String(number)
		newNumber = "";
		for(j=0;j<=2-(number.length);j++)
			newNumber = "0"+ newNumber;
		return "quran/"+ mushafControl.get(0).value +"/"+newNumber+number+".jpg";
	}
	
	mushafControl.change(function(){ChangeByPage(0)})
	suraControl.change(function(){ChangeByPage(this.value)})
	juzControl.change(function(){ChangeByPage(this.value)})
	hizbControl.change(function(){ChangeByPage(this.value)})
	pageControlButton.click(function(){ChangeByPage(pageControl.get(0).value);return false;})
	pageControlButton.closest("form").submit(function(){ChangeByPage(pageControl.get(0).value);return false;})
	
	function ChangeByPage(number,item)
	{		
		if(page1.data("currentImage") == -1 || number == Number(""))hideReadQuran = true;
		page1.data("currentImage",Math.floor((number-1)/2)*2+1);
		page2.data("currentImage",page1.data("currentImage")+1);
		
		waitedImages = 2;
		LoadImage(GetUrl($(page1).data("currentImage")),$(page1));
		LoadImage(GetUrl($(page2).data("currentImage")),$(page2));
	}
	function RepairControls(number)
	{
		RepairControls2(suraControl)
		RepairControls2(juzControl)
		RepairControls2(hizbControl)
		
		if(number>0)pageControl.get(0).value = number;		
	}
	function RepairControls2(item)
	{
		item = item.get(0);
		var values = new Array();
		for(i=0; i<item.length;i++)values.push(item.options[i].value);
		var value = GetNearlyItem(values,page1.data("currentImage")+1,-1);
		if(value == undefined)value ="";
		if(item.value != page1.data("currentImage") && item.value != page2.data("currentImage"))
			item.value = value;
	}
	
	
});

