﻿var filesPath='';
var surArray=new Array(0,7,286,200,176,120,165,206,75,129,109,123,111,43,52,99,128,111,110,98,135,112,78,118,64,77,227,93,88,69,60,34,30,73,54,45,83,182,88,75,85,54,53,89,59,37,35,38,29,18,45,60,49,62,55,78,96,29,22,24,13,14,11,11,18,12,12,30,52,52,44,28,28,20,56,40,31,50,40,46,42,29,19,36,25,22,17,19,26,30,20,15,21,11,8,8,19,5,8,8,11,11,8,3,9,5,4,7,3,6,3,5,4,5,6);
var pageArray=[[], [1, 1], [2, 1], [2, 6], [2, 17], [2, 25], [2, 30], [2, 38], [2, 49], [2, 58], [2, 62], [2, 70], [2, 77], [2, 84], [2, 89], [2, 94], [2, 102], [2, 106], [2, 113], [2, 120], [2, 127], [2, 135], [2, 142], [2, 146], [2, 154], [2, 164], [2, 170], [2, 177], [2, 182], [2, 187], [2, 191], [2, 197], [2, 203], [2, 211], [2, 216], [2, 220], [2, 225], [2, 231], [2, 234], [2, 238], [2, 246], [2, 249], [2, 253], [2, 257], [2, 260], [2, 265], [2, 270], [2, 275], [2, 282], [2, 283], [3, 1], [3, 10], [3, 16], [3, 23], [3, 30], [3, 38], [3, 46], [3, 53], [3, 62], [3, 71], [3, 78], [3, 84], [3, 92], [3, 101], [3, 109], [3, 116], [3, 122], [3, 133], [3, 141], [3, 149], [3, 154], [3, 158], [3, 166], [3, 174], [3, 181], [3, 187], [3, 195], [4, 1], [4, 7], [4, 12], [4, 15], [4, 20], [4, 24], [4, 27], [4, 34], [4, 38], [4, 45], [4, 52], [4, 60], [4, 66], [4, 75], [4, 80], [4, 87], [4, 92], [4, 95], [4, 102], [4, 106], [4, 114], [4, 122], [4, 128], [4, 135], [4, 141], [4, 148], [4, 155], [4, 163], [4, 171], [4, 176], [5, 3], [5, 6], [5, 10], [5, 14], [5, 18], [5, 24], [5, 32], [5, 37], [5, 42], [5, 46], [5, 51], [5, 58], [5, 65], [5, 71], [5, 77], [5, 83], [5, 90], [5, 96], [5, 104], [5, 109], [5, 114], [6, 1], [6, 9], [6, 19], [6, 28], [6, 36], [6, 45], [6, 53], [6, 60], [6, 69], [6, 74], [6, 82], [6, 91], [6, 95], [6, 102], [6, 111], [6, 119], [6, 125], [6, 132], [6, 138], [6, 143], [6, 147], [6, 152], [6, 158], [7, 1], [7, 12], [7, 23], [7, 31], [7, 38], [7, 44], [7, 52], [7, 58], [7, 68], [7, 74], [7, 82], [7, 88], [7, 96], [7, 105], [7, 121], [7, 131], [7, 138], [7, 144], [7, 150], [7, 156], [7, 160], [7, 164], [7, 171], [7, 179], [7, 188], [7, 196], [8, 1], [8, 9], [8, 17], [8, 26], [8, 34], [8, 41], [8, 46], [8, 53], [8, 62], [8, 70], [9, 1], [9, 7], [9, 14], [9, 21], [9, 27], [9, 32], [9, 37], [9, 41], [9, 48], [9, 55], [9, 62], [9, 69], [9, 73], [9, 80], [9, 87], [9, 94], [9, 100], [9, 107], [9, 112], [9, 118], [9, 123], [10, 1], [10, 7], [10, 15], [10, 21], [10, 26], [10, 34], [10, 43], [10, 54], [10, 62], [10, 71], [10, 79], [10, 89], [10, 98], [10, 107], [11, 6], [11, 13], [11, 20], [11, 29], [11, 38], [11, 46], [11, 54], [11, 63], [11, 72], [11, 82], [11, 89], [11, 98], [11, 109], [11, 118], [12, 5], [12, 15], [12, 23], [12, 31], [12, 38], [12, 44], [12, 53], [12, 64], [12, 70], [12, 79], [12, 87], [12, 96], [12, 104], [13, 1], [13, 6], [13, 14], [13, 19], [13, 29], [13, 35], [13, 43], [14, 6], [14, 11], [14, 19], [14, 25], [14, 34], [14, 43], [15, 1], [15, 16], [15, 32], [15, 52], [15, 71], [15, 91], [16, 7], [16, 15], [16, 27], [16, 35], [16, 43], [16, 55], [16, 65], [16, 73], [16, 80], [16, 88], [16, 94], [16, 103], [16, 111], [16, 119], [17, 1], [17, 8], [17, 18], [17, 28], [17, 39], [17, 50], [17, 59], [17, 67], [17, 76], [17, 87], [17, 97], [17, 105], [18, 5], [18, 16], [18, 21], [18, 28], [18, 35], [18, 46], [18, 54], [18, 62], [18, 75], [18, 84], [18, 98], [19, 1], [19, 12], [19, 26], [19, 39], [19, 52], [19, 65], [19, 77], [19, 96], [20, 13], [20, 38], [20, 52], [20, 65], [20, 77], [20, 88], [20, 99], [20, 114], [20, 126], [21, 1], [21, 11], [21, 25], [21, 36], [21, 45], [21, 58], [21, 73], [21, 82], [21, 91], [21, 102], [22, 1], [22, 6], [22, 16], [22, 24], [22, 31], [22, 39], [22, 47], [22, 56], [22, 65], [22, 73], [23, 1], [23, 18], [23, 28], [23, 43], [23, 60], [23, 75], [23, 90], [23, 105], [24, 1], [24, 11], [24, 21], [24, 28], [24, 32], [24, 37], [24, 44], [24, 54], [24, 59], [24, 62], [25, 3], [25, 12], [25, 21], [25, 33], [25, 44], [25, 56], [25, 68], [26, 1], [26, 20], [26, 40], [26, 61], [26, 84], [26, 112], [26, 137], [26, 160], [26, 184], [26, 207], [27, 1], [27, 14], [27, 23], [27, 36], [27, 45], [27, 56], [27, 64], [27, 77], [27, 89], [28, 6], [28, 14], [28, 22], [28, 29], [28, 36], [28, 44], [28, 51], [28, 60], [28, 71], [28, 78], [28, 85], [29, 7], [29, 15], [29, 24], [29, 31], [29, 39], [29, 46], [29, 53], [29, 64], [30, 6], [30, 16], [30, 25], [30, 33], [30, 42], [30, 51], [31, 1], [31, 12], [31, 20], [31, 29], [32, 1], [32, 12], [32, 21], [33, 1], [33, 7], [33, 16], [33, 23], [33, 31], [33, 36], [33, 44], [33, 51], [33, 55], [33, 63], [34, 1], [34, 8], [34, 15], [34, 23], [34, 32], [34, 40], [34, 49], [35, 4], [35, 12], [35, 19], [35, 31], [35, 39], [35, 45], [36, 13], [36, 28], [36, 41], [36, 55], [36, 71], [37, 1], [37, 25], [37, 52], [37, 77], [37, 103], [37, 127], [37, 154], [38, 1], [38, 17], [38, 27], [38, 43], [38, 62], [38, 84], [39, 6], [39, 11], [39, 22], [39, 32], [39, 41], [39, 48], [39, 57], [39, 68], [39, 75], [40, 8], [40, 17], [40, 26], [40, 34], [40, 41], [40, 50], [40, 59], [40, 67], [40, 78], [41, 1], [41, 12], [41, 21], [41, 30], [41, 39], [41, 47], [42, 1], [42, 11], [42, 16], [42, 23], [42, 32], [42, 45], [42, 52], [43, 11], [43, 23], [43, 34], [43, 48], [43, 61], [43, 74], [44, 1], [44, 19], [44, 40], [45, 1], [45, 14], [45, 23], [45, 33], [46, 6], [46, 15], [46, 21], [46, 29], [47, 1], [47, 12], [47, 20], [47, 30], [48, 1], [48, 10], [48, 16], [48, 24], [48, 29], [49, 5], [49, 12], [50, 1], [50, 16], [50, 36], [51, 7], [51, 31], [51, 52], [52, 15], [52, 32], [53, 1], [53, 27], [53, 45], [54, 7], [54, 28], [54, 50], [55, 17], [55, 41], [55, 68], [56, 17], [56, 51], [56, 77], [57, 4], [57, 12], [57, 19], [57, 25], [58, 1], [58, 7], [58, 12], [58, 22], [59, 4], [59, 10], [59, 17], [60, 1], [60, 6], [60, 12], [61, 6], [62, 1], [62, 9], [63, 5], [64, 1], [64, 10], [65, 1], [65, 6], [66, 1], [66, 8], [67, 1], [67, 13], [67, 27], [68, 16], [68, 43], [69, 9], [69, 35], [70, 11], [70, 40], [71, 11], [72, 1], [72, 14], [73, 1], [73, 20], [74, 18], [74, 48], [75, 20], [76, 6], [76, 26], [77, 20], [78, 1], [78, 31], [79, 16], [80, 1], [81, 1], [82, 1], [83, 7], [83, 35], [85, 1], [86, 1], [87, 16], [89, 1], [89, 24], [91, 1], [92, 15], [95, 1], [97, 1], [98, 8], [100, 10], [103, 1], [106, 1], [109, 1], [112, 1], [115, 1]];
var suraNameArray=new Array('','الفاتحة','البقرة','آل عمران','النساء','المائدة','الأنعام','الأعراف','الأنفال','التوبة','يونس','هود','يوسف','الرعد','ابراهيم','الحجر','النحل','الإسراء','الكهف','مريم','طه','الأنبياء','الحج','المؤمنون','النور','الفرقان','الشعراء','النمل','القصص','العنكبوت','الروم','لقمان','السجدة','الأحزاب','سبإ','فاطر','يس','الصافات','ص','الزمر','غافر','فصلت','الشورى','الزخرف','الدخان','الجاثية','الأحقاف','محمد','الفتح','الحجرات','ق','الذاريات','الطور','النجم','القمر','الرحمن','الواقعة','الحديد','المجادلة','الحشر','الممتحنة','الصف','الجمعة','المنافقون','التغابن','الطلاق','التحريم','الملك','القلم','الحاقة','المعارج','نوح','الجن','المزمل','المدثر','القيامة','الانسان','المرسلات','النبإ','النازعات','عبس','التكوير','الإنفطار','المطففين','الإنشقاق','البروج','الطارق','الأعلى','الغاشية','الفجر','البلد','الشمس','الليل','الضحى','الشرح','التين','العلق','القدر','البينة','الزلزلة','العاديات','القارعة','التكاثر','العصر','الهمزة','الفيل','قريش','الماعون','الكوثر','الكافرون','النصر','المسد','الإخلاص','الفلق','الناس');
var reciterArray = new Array('', 'محمود خليل الحصري', 'محمد جبريل', 'علي الحذيفي', 'محمد صديق المنشاوي', 'مشاري راشد العفاسي', '', 'عبد الباسط عبد الصمد', 'محمد أيـوب', 'سعد الغامدي', '', 'عبد الرحمن السديس', 'سعود الشريم', 'أبو بكر الشاطري');
var recitersQualityArray = [[], [1, 1], [2, 1], [3, 1], [4, 3], [5, 1], [6, 1], [7, 1], [8, 1], [9, 2], [10, 1], [11, 1], [12, 1], [13, 1]];
var qualityArray = new Array('', 'high', 'medium', 'low');
var separatorArray = new Array('', 'aliseatha', 'bird', 'water', 'silence');
var versesArr=new Array();
var currentSura=1;
var currentVerse=1;
var currentPage=1;
var fileName;
var volume=100;
var reciterSuraArr =  null;
var playedIndex=0;
var G_suraName="";
var G_ReciterName="";
var cSura=1;
var cVerse=1;
var sebServicePath = "../App_WebServices/STebyanServices.asmx/";
 var playListItemsEntities=null;
 var textShow = false;
 
 var siteURL = "../";
 siteURL = "http://ensaat.com/";
 
 var separator = false;
 var sample = false;
 var separatorId = 0;
//for Get Reciter Sura List
 function GetReciterSuraList() {
     if ($.cookie('reciterSuraList') != null) // get cookie for reciter sura List
     {
         reciterSuraArr = eval($.cookie('reciterSuraList'));
     }
     else {
         reciterSuraArr = null;
     }
 }
//get File Path From Cookies
 function getFilePath() {
     filesPath = "App_Files/"
     if ($.cookie('recFName') != null)
         filesPath += $.cookie('recFName') + "/";
     if ($.cookie('qeraah'))
         filesPath += $.cookie('qeraah') + "/";
     if ($.cookie('quality'))
         filesPath += $.cookie('quality') + "/";
 }
//Set Cookies by default values
 function setCookies() {
     if ($.cookie('recFName') == null)
         $.cookie('recFName', 'Hudhaify', { expires: 1 }); // set cookie for reciter folderName
     if ($.cookie('currVerse') == null)
         $.cookie('currVerse', currentVerse, { expires: 1 }); //set cookie for current Verse
     if ($.cookie('currSura') == null)
         $.cookie('currSura', currentSura, { expires: 1 }); //set cookie for current Sura
     if ($.cookie('qeraah') == null)
         $.cookie('qeraah', 'hafs');
     if ($.cookie('quality') == null)
         $.cookie('quality', 'high');
 }
 //get verseId by VerseNumber
 function getVerseId(sura,verse) {
     var verseId = 0;
     for (var i = 0; i < sura; i++) {
         verseId += surArray[i];
     }
     verseId += verse;
     $.cookie('verseId', verseId, { expires: 1 });

     return verseId;
 }
 /***** get numbers of verses by suraId *****/
 function getSuraVerses(suraId) {
     if (suraId > 0 & suraId < 115)
         return surArray[suraId];
     else
         return 0;
 }
 /***** save in playedrecently *****/
 function SavePlayedRecently() {
     
     if ($.cookie('userId')) {
         userId = $.cookie('userId');

         var verseId = 0;
         if ($.cookie('verseId'))
             verseId = parseInt($.cookie('verseId'));

         var reciterId = 0;
         if ($.cookie('reciterId'))
             reciterId = parseInt($.cookie('reciterId'));

         var qualityId = 0;
         if ($.cookie('quality'))
             qualityId = parseInt(qualityArray.indexOf($.cookie('quality')));

         var playListDetailsId = 0;
         if ($.cookie('playListDetailsId'))
             playListDetailsId = parseInt($.cookie('playListDetailsId'));

         if (verseId > 0 && reciterId > 0 && qualityId > 0) {

             params = "[{ UserId: \"" + userId + "\", VerseId: " + verseId + ", ReciterId: " + reciterId + ", QualityId: " + qualityId + ", PlayListDetailsId: " + playListDetailsId + "}]";

             $.ajax({

                 type: "POST",
                 url: sebServicePath + "PlayedRecentlyAdd",
                 data: "{jsonData: '" + params + "' }",
                 contentType: "application/json; charset=utf-8",
                 dataType: "json",
                 async: false,

                 success: function() {
                     //alert('Save');  
                 },
                 error: function() {
                     //alert('error'); 
                 }
             });
         }
     }
 }

 /***** play from reciter menus *****/
 function playByReciter() {
     GetReciterSuraList();
     setCookies();
     playListItemsEntities = null;
     if (reciterSuraArr != null) {
         if ($.cookie('sura') == null) {
             Play(parseInt(reciterSuraArr[0]), 1);
         }
         else {
             playedIndex = reciterSuraArr.indexOf($.cookie('sura'));
             if (playedIndex != -1) {
                 Play(parseInt(reciterSuraArr[playedIndex]), 1);
             }
             else {
                 Play(parseInt($.cookie('sura')), 1);
             }
         }
         getPageNumber();
     }
     else {
     }
 }

 /***** play from PlayList *****/
var currentPlayListRow=0;
function playPlayList() {
    //alert(playListItemsEntities.length);
    if (currentPlayListRow < playListItemsEntities.length) {
        
        var startSuraId = playListItemsEntities[currentPlayListRow].StartSuraId;
        var startVerseId = playListItemsEntities[currentPlayListRow].StartVerseId;
        var endSuraId = playListItemsEntities[currentPlayListRow].EndSuraId;
        var endVerseId = playListItemsEntities[currentPlayListRow].EndVerseId;
        separatorId = playListItemsEntities[currentPlayListRow].SeparatorId;
        var PlayListDetailsId = playListItemsEntities[currentPlayListRow].PlayListDetailsId;
        $.cookie('reciterId', playListItemsEntities[currentPlayListRow].ReciterId, { expires: 1 });
        $.cookie('recFName', playListItemsEntities[currentPlayListRow].ReciterFolderName, { expires: 1 });
        $.cookie('playListDetailsId',PlayListDetailsId, { expires: 1 });

        var qualityNumber = parseInt(recitersQualityArray[playListItemsEntities[currentPlayListRow].ReciterId][1]);
        $.cookie('quality', qualityArray[qualityNumber]);
        ///////This Need More Test////////// 
        
        if (currentSura < endSuraId) {
            if (!separator) {
                if (currentVerse < getSuraVerses(currentSura)) {
                    currentVerse++;
                }
                else {
                    if (currentSura <= 114)
                        currentSura++;
                    currentVerse = 1;
                } 
            }
            separator = false;
        }
        else if (currentSura > endSuraId) {
        if (separatorId != 0)
            separator = true;
        currentPlayListRow++;
            GetText();
            if (currentPlayListRow < playListItemsEntities.length) {
                currentSura = playListItemsEntities[currentPlayListRow].StartSuraId;
                currentVerse = playListItemsEntities[currentPlayListRow].StartVerseId;
                separatorId = playListItemsEntities[currentPlayListRow].SeparatorId;
                if (separatorId != 0)
                    separator = true;
            }
            else {
                currentPlayListRow = 0;
                if (playListItemsEntities) {
                    currentSura = playListItemsEntities[currentPlayListRow].StartSuraId;
                    currentVerse = playListItemsEntities[currentPlayListRow].StartVerseId;
                }
            }
        }
        else //currentSura == endSuraId
        {
            if (currentVerse < endVerseId) {
                if (!separator)
                    currentVerse++;
                separator = false;
            }
            else {
                if (startVerseId != endVerseId) {
                    if (separatorId != 0)
                        separator = true;
                }
                currentPlayListRow++;
                GetText();
                if (currentPlayListRow < playListItemsEntities.length) {
                    currentSura = playListItemsEntities[currentPlayListRow].StartSuraId;
                    currentVerse = playListItemsEntities[currentPlayListRow].StartVerseId;
                    separatorId = playListItemsEntities[currentPlayListRow].SeparatorId;
                    if (separatorId != 0)
                        separator = true;
                }
                else {
                    currentPlayListRow = 0;
                    if (playListItemsEntities) {
                        currentSura = playListItemsEntities[currentPlayListRow].StartSuraId;
                        currentVerse = playListItemsEntities[currentPlayListRow].StartVerseId;
                    }
                }
            }

        }
        
        PlayListDetailsId = playListItemsEntities[currentPlayListRow].PlayListDetailsId;
        $.cookie('reciterId', playListItemsEntities[currentPlayListRow].ReciterId, { expires: 1 });
        $.cookie('recFName', playListItemsEntities[currentPlayListRow].ReciterFolderName, { expires: 1 });
        $.cookie('playListDetailsId',PlayListDetailsId, { expires: 1 });

        qualityNumber = parseInt(recitersQualityArray[playListItemsEntities[currentPlayListRow].ReciterId][1]);
        $.cookie('quality', qualityArray[qualityNumber]);
    }
    else {
        currentPlayListRow = 0;
        if (playListItemsEntities) {
            currentSura = playListItemsEntities[currentPlayListRow].StartSuraId;
            currentVerse = playListItemsEntities[currentPlayListRow].StartVerseId;
        }
    }
}
/****** play from PlayList *****/
/***** Player : Play *****/
function playerPlay(btn) {
    if ($.cookie('reciterId')) {
        if (player)
            player.sendEvent('PLAY');
        if (btn.className == 'player_play_button') {
            btn.className = 'player_pause_button';
        }
        else {
            btn.className = 'player_play_button';
        }
    }
}
/***** Player : Play *****/
//the main funcion that make player play
function Play(sura, verse) {

    //alert('sura  :  ' + sura + '  verse : ' + verse);
    sample = false;
    //Get Reciter Sura List From Cookie
    GetReciterSuraList();
    //to Get File Path From cookies
    getFilePath();
    cSura = sura;
    cVerse = verse;
    currentSura = sura;
    currentVerse = verse;
    $.cookie('currVerse', currentVerse);
    $.cookie('currSura', currentSura);
    
    var filePath = siteURL + filesPath;
    //fileName = 'S'+currentSura.toFixed().pad(3,"0")+'A'+currentVerse.toFixed().pad(3,"0");
    if (!separator) {
        fileName = currentSura.toFixed().pad(3, "0") + currentVerse.toFixed().pad(3, "0");
        filePath += fileName;
    }
    else {
        filePath = siteURL + "App_Files/";
        fileName = separatorArray[separatorId];
        filePath += fileName;
        //separator = false;
    }
    
    if (player) {
        player.sendEvent('LOAD', filePath + ".mp3");
        player.sendEvent('PLAY', true);
    }
    getVerseId(currentSura, currentVerse);
    ayaHighlight('S' + parseInt($.cookie('currSura')).toFixed().pad(3, "0") + 'A' + parseInt($.cookie('currVerse')).toFixed().pad(3, "0"))
    
    //to show suraName in Player
    $('#SuraNameSpan').text("سـورة " + suraNameArray[sura]);
    $('#TitleSuraName').text("سـورة " + suraNameArray[parseInt($.cookie('currSura'))]);
    $('#TitleReciteName').text(reciterArray[parseInt($.cookie('reciterId'))]);
    $('#TitleVersName').text("الآية " + $.cookie('currVerse'));
    $('#ayaNumberSpan').text("الآية " + $.cookie('currVerse'));
    $('#ReciterSpan').text(reciterArray[parseInt($.cookie('reciterId'))]);
    setTimeout("PlayCashed()", 500);
}
function PlaySample(sura, verse, reciterFolderName, reciterId) {
    sample = true;
    $.cookie('recFName', reciterFolderName);
    $.cookie('qeraah', 'Hafs');
    $.cookie('quality', 'high');
    $.cookie('reciterId', reciterId);
    currentSura = sura;
    currentVerse = verse;
    $.cookie('currVerse', currentVerse);
    $.cookie('currSura', currentSura);
    getFilePath();
    fileName = currentSura.toFixed().pad(3, "0") + currentVerse.toFixed().pad(3, "0");
    if (player) {
        player.sendEvent('LOAD', siteURL + filesPath + fileName + ".mp3");
        player.sendEvent('PLAY', true);
    }
    getVerseId(currentSura, currentVerse);
    ayaHighlight('S' + parseInt($.cookie('currSura')).toFixed().pad(3, "0") + 'A' + parseInt($.cookie('currVerse')).toFixed().pad(3, "0"))
    //to show suraName in Player
    $('#SuraNameSpan').text("سـورة " + suraNameArray[sura]);
    $('#TitleSuraName').text("سـورة " + suraNameArray[parseInt($.cookie('currSura'))]);
    $('#TitleReciteName').text(reciterArray[reciterId]);
    $('#TitleVersName').text("الآية " + $.cookie('currVerse'));
    $('#ayaNumberSpan').text("الآية " + $.cookie('currVerse'));
    $('#ReciterSpan').text(reciterArray[reciterId]);
}

//to request files in client
function PlayCashed() {
    if(!separator)
    {
        Next();
    }
    else
    {
        separator=false;
    }
    fileName = currentSura.toFixed().pad(3, "0") + currentVerse.toFixed().pad(3, "0");
    player2 = document.getElementById('player5');
    if (player2 && player2.loadFile != null) {
        var fileUrl = siteURL + filesPath + fileName + ".mp3";
        player2.loadFile({ file: fileUrl });
        player2.sendEvent('playpause');
        player2.sendEvent('playpause');
    }
}
//update current sura and verse
function Next() {

    if (!playListItemsEntities) {
        $.cookie('playListDetailsId',0, { expires: 1 });
        if (currentVerse < getSuraVerses(currentSura)) {
            currentVerse++;
        }
        else {
            if (currentSura <= 114) {
                if (reciterSuraArr != null) {
                    if (playedIndex < reciterSuraArr.length) {
                        if (reciterSuraArr.length > 0) {
                            playedIndex = reciterSuraArr.indexOf($.cookie('currSura'));
                            playedIndex++;
                            currentSura = parseInt(reciterSuraArr[playedIndex]);
                        }
                    }
                }
                else {
                    currentSura++;
                }
            }
            else {
                if (reciterSuraArr != null) {
                    currentSura = parseInt(reciterSuraArr[0]);
                }
                else {
                    currentSura = 1;
                }
            }
            currentVerse = 1;
        }
    }
    else {
        playPlayList();
    }
}
function Prev() {
    if (!playListItemsEntities) {
        if (currentVerse != 1) {
            currentVerse--;
        }
        else {
            if (currentSura != 1) {
                if (reciterSuraArr) {
                    if (playedIndex != 0)
                        playedIndex--;
                    currentSura = parseInt(reciterSuraArr[playedIndex]);
                    currentVerse = getSuraVerses(currentSura);

                }
            }
        }
    }
    else {
        if (currentPlayListRow >= 0) {
            var startSuraId = playListItemsEntities[currentPlayListRow].StartSuraId;
            var startVerseId = playListItemsEntities[currentPlayListRow].StartVerseId;
            var endSuraId = playListItemsEntities[currentPlayListRow].EndSuraId;
            var endVerseId = playListItemsEntities[currentPlayListRow].EndVerseId;
            if (currentSura > startSuraId) {
                if (currentVerse != 1) {
                    currentVerse--;
                }
                else {
                    if (currentSura != 1) {
                        currentSura--;
                        currentVerse = getSuraVerses(currentSura);
                    }
                    else {
                        currentVerse--;
                    }
                }
            }
            else {
                if (currentVerse > startVerseId) {
                    currentVerse--;
                }
                else {
                    if (currentPlayListRow > 0) {
                        currentPlayListRow--;
                        currentSura = endSuraId;
                        currentVerse = endVerseId;
                    }
                }
            }
        }
    }
}
//we must play after get next verse
function GoNext() {
    if (!sample)
        Play(currentSura, currentVerse);
    
}
function GoPrev() {
    Prev();
    Prev();
    Play(currentSura, currentVerse);
    
}
		//Using JQuery
		//http://www.mikesdotnetting.com/Article.aspx?ArticleID=96
function GetText(pageNumber) {
    var serviceName = "";
    var paramData = "";
    if (!pageNumber) {
        serviceName = "VerseGetVerseText";
        paramData = "{verseNumber:" + parseInt($.cookie('currVerse')) + ",suraId:" + parseInt($.cookie('currSura')) + ",qeraahId:1,langId:2}";
    }
    else {
        serviceName = "VerseGetVersesByPageNumber";
        paramData = "{qeraahId: 1,pageNumber:" + currentPage + ",langId:2 }";
    }
    $.ajax({

        type: "POST",
        url: sebServicePath + serviceName,
        data: paramData,
        contentType: "application/json; charset=utf-8",

        dataType: "json",
        async: false,
        success: function(response) {

            var VerseEntity = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;

            $('#ayaContainer').empty();

            var suranum = "";
            var versnum = "";
            var verseText = "";
            var verseNumber = "";
            var suraNameDiv = $('#sura_Name');
            var juzaNameDiv = $('#juza_Name');
            var versesText = "";
            versesArr = new Array();
            var Toppages = $('#pages');
            var BottomPages = $('#bottom_page');
            for (var i = 0; i < VerseEntity.length; i++) {
                suranum = VerseEntity[i].SuraId.toFixed().pad(3, "0");
                versnum = VerseEntity[i].VerseNumber.toFixed().pad(3, "0");
                verseText = VerseEntity[i].VerseText;
                verseNumber = VerseEntity[i].VerseNumber;
                currentPage = VerseEntity[i].PageNumber;
                suraNameDiv.text(" سـورة " + VerseEntity[i].SuraName);
                Toppages.text(currentPage);
                BottomPages.text(currentPage);
                juzaNameDiv.text(" الجزء " + VerseEntity[i].JuzaName);
                if (VerseEntity[i].VerseNumber == 1) {
                    versesText += "<div class='suraName'> سـورة " + VerseEntity[i].SuraName + " </div>";
                    if (VerseEntity[i].SuraId != 1 && VerseEntity[i].SuraId != 9) {
                        var firstAya = verseText.replace('بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ', '');
                        firstAya = firstAya.replace('بِّسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ', '');
                        verseText = firstAya;
                        versesText += "<div id='besm' class='besm'>بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِيمِ</div>";
                    }
                    $('#ayaContainer').append(versesText);
                    versesText = "";
                }
                $('#ayaContainer').append('<span id="S' + suranum + 'A' + versnum + '" class="ayaText" >' + verseText + '</span><span class="ayaNumber" >﴿' + verseNumber + '﴾</span> ');
                versesArr[i] = 'S' + suranum + 'A' + versnum;

            }
            //ayaHighlight
            ayaHighlight('S' + parseInt($.cookie('currSura')).toFixed().pad(3, "0") + 'A' + parseInt($.cookie('currVerse')).toFixed().pad(3, "0"))

        },

        failure: function(msg) {

            $('#ayaContainer').text(msg);

        }

    });
    //currentPage++;
}
function getPageNumber() {
    var paramData = "{verseNumber:" + parseInt($.cookie('currVerse')) + ",suraId:" + parseInt($.cookie('currSura')) + ",qeraahId:1,langId:2}";
    $.ajax({

        type: "POST",
        url: sebServicePath + "VerseGetVerseInfo",
        data: paramData,
        contentType: "application/json; charset=utf-8",

        dataType: "json",
        async: false,
        success: function(response) {

            var VerseEntities = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
            if (VerseEntities.length > 0)
                currentPage = VerseEntities[0].PageNumber;

        },

        failure: function(msg) {

            $('#ayaContainer').text(msg);
        }
    });
}
function CheckPage() {
    if (currentPage <= 604) {
        var startSura = pageArray[currentPage][0];
        var endSura = pageArray[currentPage + 1][0];
        var startverse = pageArray[currentPage][1];
        var endVerse = pageArray[currentPage + 1][1];
        if (startSura == endSura) {
            if (currentVerse == endVerse) {
                GetText();
            }
        }
        else {
            if (currentSura > endSura) {
                currentPage++;
                GetText();
            }
            else if (currentSura == endSura) {
                if (currentVerse == endVerse) {
                    currentPage++;
                    GetText();
                }
            }
        }
    }
}
function ayaHighlight(spanId) {
    CheckPage();
    $('#ayaContainer span').removeClass("ayaHighlight");
    $("#" + spanId).addClass("ayaText ayaHighlight");
    GoToAya(spanId);

}
		//For Show Quraan Text
function showQuraanText() {
    if (!textShow) {
        textShow = true;
        if ($.cookie('currVerse')) {
            loadTab(2);
        }
    }
    else {
        textShow = false;
        loadTab(4);
    }
}
/***** Quraan Player Helper *****/
function playreciterChoice(reciterId, reciterFolderName, qeraahFolderName, qualityFolderName, suraId) {
    
    $('#preloader').show();
    
    if (!reciterFolderName) {
        $.cookie('recFName', null);
    }
    else {
        //set reciter Folder Name in Cookie
        $.cookie('recFName', reciterFolderName);
    }
    if (!qeraahFolderName) {
        $.cookie('qeraah', null);
    }
    else {
        //Set Qeraah Folder Name In Cookie
        $.cookie('qeraah', qeraahFolderName);
    }
    if (!qualityFolderName) {
    	
        var qualityNumber = parseInt(recitersQualityArray[reciterId][1]);
        $.cookie('quality', qualityArray[qualityNumber]);
    }
    else {
        //set QualityFolderName in Cookie
        $.cookie('quality', qualityFolderName);
    }
    if (!suraId) {
        $.cookie('sura', null);
    }
    else {
        //Set Current Sura in Cookie
        $.cookie('sura', suraId);
        $.cookie('currSura', suraId);
    }
    //set ReciterId In Coockie
    $.cookie('reciterId', reciterId);
    
    SetReciterSuraList(langId,reciterId);
    playByReciter();
    setTimeout("$('#preloader').hide()", 500);
}
function SetReciterSuraList(langId,reciterId) {
    $.ajax({

        type: "POST",
        url: sebServicePath + "SuraGetSuraByReciterId",
        data: "{langId: " + langId + " , reciterId : " + reciterId + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: false,
        /* the success property is passed a function ( function(response) ) that first tests the validity of the resulting data,
        and if it passes that test, it is passed to the Javascript eval() function that converts 
        the JSON string to an object. response */
        success: function(response) {
            var suraEntity = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
            //delete old reciterSuraList cookies
            $.cookie('reciterSuraList', null); // delete cookie
            savedData = '[';
            $.each(suraEntity, function(index, data) {
                //set new reciterSuraList cookies
                var suraId = suraEntity[index].SuraId;
                savedData += '"' + suraId + '"' + ',';
                $.cookie('reciterSuraList', savedData.substr(0, savedData.length - 1) + ']', { expires: 2 });
            });
        },
        failure: function() {
            $("#loginForm_error").append("هناك مشكلة فنية نرجو الدخول لاحقاً");
        }
    });
}
/***** Quraan Player Helper *****/
		 /////////////////////
        ////////Scroll//////////
        var isIE = (navigator.appName == "Microsoft Internet Explorer");
        function GoToAya(spanID) {
            var obj = $("#" + spanID);
            if (document.getElementById(spanID) != null)
                obj = document.getElementById(spanID);
            var pos = getPosition(obj);
            var top = getScroll().Y;
            var win = getWinDims();
            if (pos.top - top < win.height * Scroller.marginTop || pos.bottom - top > win.height * (1 - Scroller.marginTop / 2)) Scroller.goTo(obj);
        }
        function getWinDims() {
            var myWidth = 0,
            myHeight = 0;
            if (typeof(window.innerWidth) == 'number') {
                myWidth = window.innerWidth;
                myHeight = window.innerHeight;
            } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
                myWidth = document.documentElement.clientWidth;
                myHeight = document.documentElement.clientHeight;
            } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
                myWidth = document.body.clientWidth;
                myHeight = document.body.clientHeight;
            }
            return {
                width: myWidth,
                height: myHeight
            };
        }
        function getScroll() {
            var scrOfX = 0,
            scrOfY = 0;
            if (typeof(window.pageYOffset) == 'number') {
                scrOfY = window.pageYOffset;
                scrOfX = window.pageXOffset;
            } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
                scrOfY = document.body.scrollTop;
                scrOfX = document.body.scrollLeft;
            } else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
                scrOfY = document.documentElement.scrollTop;
                scrOfX = document.documentElement.scrollLeft;
            }
            return {
                X: scrOfX,
                Y: scrOfY
            };
        }
        function getPosition(obj) {
            var curleft = curtop = 0;
            var height = obj.offsetHeight;
            if (obj.offsetParent) do {
                curleft += obj.offsetLeft;
                curtop += obj.offsetTop;
            } while ( obj = obj . offsetParent );
            return {
                left: curleft,
                top: curtop,
                bottom: curtop + height
            };
        }
        var Scroller = {
            duration: 600,
            marginTop: 1 / 8,
            method: 'quadratic',
            startTime: 0,
            target: 0,
            initGap: 0,
            task: null,
            goTo: function(obj) {
                clearInterval(this.task);
                this.startTime = (new Date()).getTime();
                this.target = getPosition(obj).top - getWinDims().height * this.marginTop;
                this.initGap = this.target - getScroll().Y;
                setTimeout('Scroller.scrollWindow()', 10);
            },
            scrollWindow: function() {
                var currPos = getScroll();
                var now = (new Date()).getTime();
                if (now - this.startTime < this.duration) {
                    var newY = this.target - this.newGap(now);
                    window.scrollTo(currPos.X, newY);
                    if (newY == currPos.Y || currPos.Y != getScroll().Y) {
                        clearInterval(this.task);
                        this.task = setTimeout('Scroller.scrollWindow()', 10);
                    }
                } else window.scroll(currPos.X, this.target);
            },
            newGap: function(now) {
                var portion = 0;
                var deltaTime = (now - this.startTime) / this.duration;
                if (this.method == 'quadratic') portion = 1 - Math.pow(1 - deltaTime, 2);
                else portion = deltaTime;
                return parseInt(this.initGap * (1 - portion));
            }
        }
        var scrollFactor = isIE ? 1.3 : 1.8;
        var scrollTimeout = null;
        function smoothScroll(obj) {
            clearInterval(scrollTimeout);
            var destY = getPosition(obj).top - getWinDims().height / 8;
            setTimeout('scrollWindowTo(' + destY + ')', 20);
        }
        function scrollWindowTo(destY) {
            var pos = getScroll();
            var diff = destY - pos.Y;
            if (Math.abs(diff) > 2 * scrollFactor) {
                var delta = (diff < 0 ? -1 : +1) * Math.pow(Math.abs(diff), 1 / scrollFactor);
                window.scrollTo(pos.X, pos.Y + delta);
                if (pos.Y != getScroll().Y) scrollTimeout = setTimeout('scrollWindowTo(' + destY + ')', 10);
            } else window.scrollTo(pos.X, destY);
        }

        /***** PlayList Details *****/
        function GetDetialsOfPlayList(playListId) {

            params = "{playListId:" + playListId + ", langId:" + langId + "}";
            var playListItemsEntitiesDetails =null;
            $.ajax({
                type: "POST",
                url: sebServicePath + "PlayListItemsGetAllPlayLists",
                cache: true,
                data: params,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                async: false,
                success: function(response) {

                    playListItemsEntitiesDetails = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
                },
                failure: function() {
                    $("#attentionForm_error").empty();
                    $("#attentionForm_error").append("هناك مشكلة فنية نرجو الدخول لاحقاً");
                    tb_show(null, "#TB_inline?height=355&width=450&inlineId=attentionForm&amp;modal=true", "");
                }
            })
            
            return playListItemsEntitiesDetails;
        }
        /***** PlayList Details *****/
        
        /***** PlayList Info *****/
        function GetPlayListInfo(playListId) {
        
            var playListInfo = null;            
            params = "{playListId:" + playListId + ", langId:" + langId + "}";

            $.ajax({
                type: "POST",
                url: sebServicePath + "PlayListItemsGetAllPlayLists",
                cache: true,
                data: params,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                async: false,
                success: function(response) {

                    playListInfo = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
                },
                failure: function() {
                    $("#attentionForm_error").empty();
                    $("#attentionForm_error").append("هناك مشكلة فنية نرجو الدخول لاحقاً");
                    tb_show(null, "#TB_inline?height=355&width=450&inlineId=attentionForm&amp;modal=true", "");
                }
            })

            return playListInfo;
        }
        /***** PlayList Info *****/

        /***** playList update hits *****/
        function UpdatePlayListHits(playListId) {

            params = "{playListId: " + playListId + "}";

            $.ajax({

                type: "POST",
                url: sebServicePath + "PlayListUpdateHits",
                data: params,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                async: false,
                success: function() {
                    //alert('add successfully');
                },
                failure: function() {
                    //alert('faild');
                }
            });
        }
        /***** playList update hits *****/

        /***** text limitation *****/
        function limitChars(textid, limit, infodiv) {
            var text = $('#' + textid).val();
            var textlength = text.length;
            if (textlength > limit) {
                //$('#' + infodiv).html('You cannot write more then ' + limit + ' characters!');
                //$('#' + textid).val(text.substr(0, limit));
                return false;
            }
            else {
                //$('#' + infodiv).html('You have ' + (limit - textlength) + ' characters left.');
                return true;
            }
        }
        /***** text limitation *****/
