var isIE;

isIE = (document.all);
var XMLTransactions = "";
var CountTransaction = 0;
var WaitDlg;
var Transactions = new Array();

var Width0 = BwindowWidth();
var Height0 = BwindowHeight();

var msgGroup_en = "This package is not compatible with the consulate selected";
var msgGroup_ar = "المختارة القنصلية مع متناسبة غير الباكاج هذه";

var msg1_en = "The Search did not return any result!";
var msg1_ar = "البحث لم يرجع أي نتيجة";
var msg2_en = "An error has occured, the system failed to search successfully!";
var msg2_ar = "حصلت مشكلة ما, لم نتمكن من إجراء البحث";

var msg3_en = "Invalid date format specified.  Please use: dd/mm/yyyy";
var msg4_en = "Arrival date is invalid!";
var msg5_en = "Departure date is invalid!";
var msg6_en = "Selected Mutamers must have the same package in order to perform this transaction!";
var msg7_en = "Either Group code or Passport number is required in search.";

var msg3_ar = "التاريخ المحدد غير صالح";
var msg4_ar = "تاريخ رحلة القدوم ليس صالحا";
var msg5_ar = "تاريخ رحلة المغادرة ليس صالحا";
var msg6_ar = "يجب على المعتمرين المختارين ان يكون لهم نفس البرنامج لكي تتمكن من اتمام هذه الحركة";
var msg7_ar = "يجب إدخال رقم المجموعة أو رقم الجواز في خانة البحث";

var VISA = "VISA";
var CCAM = "CCAM";
var BORD = "BORD";
var EDPK = "EDPK";
var EVIS = "EVIS";

var PackageNumber;

function getDay(sdate) {
    var index = sdate.indexOf("/");
    var day = parseInt(sdate.substring(0, index), 10);
    return day;
}

function getMonth(sdate) {
    var index0 = sdate.indexOf("/");
    var index1 = sdate.indexOf("/", index0 + 1);
    var month = parseInt(sdate.substring(index0 + 1, index1), 10);
    return month;
}

function getYear(sdate) {
    var index0 = sdate.indexOf("/");
    var index1 = sdate.indexOf("/", index0 + 1);
    var year = sdate.substring(index1 + 1, sdate.length);
    return year;
}
function validateDate(sdate1) {
    // The function is not asked to check if date is required
    if (sdate1 == "") {
        return true;
    }
    var date1 = new Date(sdate1);
    if (date1 == "NaN") {
        return false;
    }
    else {
        var day = getDay(sdate1);
        var month = getMonth(sdate1);
        var year = getYear(sdate1);

        if (day < 1 || day > 31 || month > 12 || month < 1 || year < 1000 || year > 3000) {
            return false;
        }
    }

    return true;
}

function compareDates(sdate1, sdate2) {
    var greater = false;

    var day1 = getDay(sdate1);
    var month1 = getMonth(sdate1);
    var year1 = getYear(sdate1);

    var day2 = getDay(sdate2);
    var month2 = getMonth(sdate2);
    var year2 = getYear(sdate2);

    if (year2 > year1) {
        greater = true;
    }
    else if (year2 == year1 && month2 > month1) {
        greater = true;
    }
    else if (year2 == year1 && month2 == month1 && day2 > day1) {
        greater = true;
    }
    return greater;
}

function equalDates(sdate1, sdate2) {
    var greater = false;

    var day1 = getDay(sdate1);
    var month1 = getMonth(sdate1);
    var year1 = getYear(sdate1);

    var day2 = getDay(sdate2);
    var month2 = getMonth(sdate2);
    var year2 = getYear(sdate2);

    if (year2 == year1 && month2 == month1 && day2 == day1) {
        greater = true;
    }

    return greater;
}

function recal() {
    if (Width0 != BwindowWidth() || Height0 != BwindowHeight())
        window.history.go(0);
}
function BwindowWidth() {
    if (window.innerWidth) return window.innerWidth;
    else if (document.body && document.body.offsetWidth) return document.body.offsetWidth;
    else return 0;
}
function BwindowHeight() {
    if (window.innerHeight) return window.innerHeight;
    else if (document.body && document.body.offsetHeight) return document.body.offsetHeight;
    else return 0;
}
function transaction_validatedates(fld1, fld2, fld3) {
    var date1 = "";
    var date2 = "";
    var date3 = "";
    var isValid = true;

    if (fld1 != null && fld1 != "" && Field(fld1) != null) {
        date1 = Field(fld1).value;
    }
    if (fld2 != null && fld2 != "" && Field(fld2) != null) {
        date2 = Field(fld2).value;
    }
    if (fld3 != null && fld3 != "" && Field(fld3) != null) {
        date3 = Field(fld3).value;
    }

    if (date1 != "") {
        if (!validateDate(date1)) {
            alert(Translate("msg3"));
            isValid = false;
        }
    }
    if (isValid && date2 != "") {
        if (!validateDate(date2)) {
            alert(Translate("msg3"));
            isValid = false;
        }

    }
    if (isValid && date3 != "") {
        if (!validateDate(date3)) {
            alert(Translate("msg3"));
            isValid = false;
        }
    }

    return isValid;
}

function validation_bord() {
    var arrival = Field("EVENT_DATE1").value;
    var departure = Field("EVENT_DATE2").value;
    var beginYear = Field("HBeginYear").value;
    var endYear = Field("HEndYear").value;

    var isValid = true;
    if (arrival != "" && departure != "") {
        if (!validateDate(arrival) || !validateDate(departure)) {
            alert(Translate("msg3"));
            isValid = false;
        }
        else if (!compareDates(beginYear, arrival) || !compareDates(arrival, endYear)) {
            alert(Translate("msg4"));
            isValid = false;
        }
        else if (!compareDates(beginYear, departure) || !compareDates(departure, endYear) || !compareDates(arrival, departure)) {
            alert(Translate("msg5"));
            isValid = false;
        }
    }
    return isValid;
}
function AddField(fldName) {
    var ret = "";
    var fld;
    fld = Field(fldName);
    if (fld == null) {
        fld = Field("SearchMuatamer1_" + fldName);
    }

    if (fld != null) {
        if (fld.value != "") {
            ret = "<" + fldName + ">" + fld.value + "</" + fldName + ">";
        }
    }
    return ret;
}

function LoadMutamers() {
    ShowWait();
    var doc = GetDomDocument();
    xml = "<root session='1'";
    if (XMLTransactions == "") {
        xml += " trans='1'";
    }
    xml += " culture='" + Field("culture").value + "'";
    xml += ">";
    xml += "</root>";
    try {
        doc.loadXML(xml);
        var xmlResponse = Post2Server(doc, "SearchResponse.aspx");
        var dom = GetDomDocument();
        dom.loadXML(xmlResponse.xml);
        GetTransactions(dom);
        FillMuatamers(dom);
    }
    catch (e) {
        alert(Translate("msg2"));
    }

    HideWait();
}

function SearchMutamer() {
    if (!ValidateArrDepDates('SearchMuatamer1_TxtArrivalFrom', 'SearchMuatamer1_TxtArrivalTo', 'SearchMuatamer1_TxtDepartureFrom', 'SearchMuatamer1_TxtDepartureTo')) {
        return;
    }
    else {
        ShowWait();
        var doc = GetDomDocument();
        xml = "<root";
        if (XMLTransactions == "") {
            xml += " trans='1'";
        }
        xml += " culture='" + Field("culture").value + "'";
        xml += " Runaway='0' ";
        xml += ">";
        xml += AddField("TxtFirst");
        xml += AddField("TxtSecond");
        xml += AddField("TxtGrandFather");
        xml += AddField("TxtLast");
        xml += AddField("TxtArrivalFrom");
        xml += AddField("TxtArrivalTo");
        xml += AddField("TxtDepartureFrom");
        xml += AddField("TxtDepartureTo");
        xml += AddField("TxtPassportNumber");
        xml += AddField("TxtGroupNumber");
        xml += AddField("TxtEANumber");
        xml += AddField("TxtPackageNumber");
        var lst = Field("SearchMuatamer1_LstStatus");
        var val = lst.options[lst.selectedIndex].value;
        xml += "<GotStatus>" + val + "</GotStatus>";
        xml += "</root>";
        try {
            doc.loadXML(xml);
            var xmlResponse = Post2Server(doc, "SearchResponse.aspx");
            var dom = GetDomDocument();
            dom.loadXML(xmlResponse.xml);
            GetTransactions(dom);
            FillMuatamers(dom);
        }
        catch (e) {
            alert(Translate("msg2"));
        }

        HideWait();
    }
}

function SearchMutamerTrans() {
    if (!ValidateArrDepDates('SearchMuatamer1_TxtArrivalFrom', 'SearchMuatamer1_TxtArrivalTo', 'SearchMuatamer1_TxtDepartureFrom', 'SearchMuatamer1_TxtDepartureTo')) {
        return;
    }
    else {
        ShowWait();
        var doc = GetDomDocument();
        xml = "<root";
        if (XMLTransactions == "") {
            xml += " trans='1'";
        }
        xml += " culture='" + Field("culture").value + "'";
        xml += " Runaway='1' ";
        xml += ">";
        xml += AddField("TxtFirst");
        xml += AddField("TxtSecond");
        xml += AddField("TxtGrandFather");
        xml += AddField("TxtLast");
        xml += AddField("TxtArrivalFrom");
        xml += AddField("TxtArrivalTo");
        xml += AddField("TxtDepartureFrom");
        xml += AddField("TxtDepartureTo");
        xml += AddField("TxtPassportNumber");
        xml += AddField("TxtGroupNumber");
        xml += AddField("TxtEANumber");
        xml += AddField("TxtPackageNumber");

        var lst = Field("SearchMuatamer1_LstStatus");
        var val = lst.options[lst.selectedIndex].value;
        xml += "<GotStatus>" + val + "</GotStatus>";
        xml += "</root>";
        try {
            doc.loadXML(xml);
            var xmlResponse = Post2Server(doc, "SearchResponse.aspx");
            var dom = GetDomDocument();
            dom.loadXML(xmlResponse.xml);
            GetTransactions(dom);
            FillMuatamers(dom);
        }
        catch (e) {
            alert(Translate("msg2"));
        }

        HideWait();
    }
}

function ClearTransactions() {
    var Tbl = Field("TblTransactions");
    var rowIndex = 0;
    var cellIndex = 0;
    for (var i = 0; i < CountTransaction; i++) {
        cellIndex = i % 3;
        rowIndex = i / 3;
        Tbl.rows[rowIndex].cells[cellIndex].innerHTML = "";
    }
    XMLTransactions = "";
}

function GetTransactions(dom) {
    var root = dom.documentElement;
    var Tbl = Field("TblTransactions");
    if (XMLTransactions == "") {
        var node = root.selectSingleNode("./ts");
        if (node != null) {
            Transactions = new Array();
            XMLTransactions = node.xml;
            var nodes = node.selectNodes("./t");
            var transNode;
            var rowIndex = 0;
            var cellIndex = 0;
            CountTransaction = 0;
            for (var i = 0; i < nodes.length; i++) {
                transNode = nodes[i];
                var alt = transNode.attributes.getNamedItem("desc").value;
                var text = transNode.attributes.getNamedItem("display").value;
                var name = transNode.attributes.getNamedItem("name").value;
                Transactions[i] = name;
                cellIndex = i % 3;
                rowIndex = i / 3;
                Tbl.rows[rowIndex].cells[cellIndex].innerHTML = "<a id='TransLnk" + i + "' class='off' href='javascript:LaunchTransaction(" + i + ")'><img id='TransImg" + i + "' src='images/trans_off.jpg' alt='" + alt + "'>&nbsp;" + alt + "</a>";
                CountTransaction++;
            }
        }

    }
}

function doNothing() {
}

function ValidateSamePackage(index) {
    var bValid = true;
    var tbl = Field("TblResults");
    var count = tbl.rows.length;
    var chk;
    var i = 0;
    var initialPackage = "";
    var currentPackage = "";
    if (Transactions[index] == EDPK || Transactions[index] == EVIS) {
        ShowWait();
        // let us validate that selected mutamers have same package
        for (i = count - 1; i >= 1; i--) {
            chk = Field("Chk" + tbl.rows(i).key);
            if (chk != null && chk.checked) {
                if (initialPackage == "") {
                    initialPackage = tbl.rows(i).cells(7).innerHTML;
                    PackageNumber = initialPackage;
                }
                else {
                    currentPackage = tbl.rows(i).cells(7).innerHTML;
                    if (initialPackage != currentPackage) {
                        bValid = false;
                        break;
                    }
                }
            }
        }
        HideWait();

    }

    return bValid;
}

function LaunchTransaction(index) {
    if (Field("TransLnk" + index).className == "on") {
        var tbl = Field("TblResults");
        var count = tbl.rows.length;
        var chk;
        var i = 0;
        var doc = GetDomDocument();
        PackageNumber = "";
        if (!ValidateSamePackage(index)) {
            alert(Translate("msg6"));
            return;
        }

        ShowWait();
        xml = "<transaction name='";
        xml += Transactions[index] + "'";

        xml += ">";

        for (i = count - 1; i >= 1; i--) {
            chk = Field("Chk" + tbl.rows(i).key);
            if (chk != null && chk.checked) {
                xml += "<m i='" + tbl.rows(i).key + "'/>";
            }
        }

        xml += "</transaction>";
        doc.loadXML(xml);
        var xmlResponse = Post2Server(doc, "SessionMutamers.aspx");
        HideWait();
        window.location.href = "Transaction.aspx?trans=" + Transactions[index];
    }
}

function FillMuatamers(dom) {
    var root = dom.documentElement;
    var node = null;
    var itemNode = null;
    var arr = new Array();

    nodes = root.selectNodes("m");
    if (nodes.length == 0) {
        alert(Translate("msg1"));
    }

    for (var i = 0; i < nodes.length; i++) {
        itemNode = nodes[i];
        // id_nexttrans
        node = itemNode.attributes.getNamedItem("i");
        var key = node.value;
        node = itemNode.attributes.getNamedItem("s");
        var nextTrans = node.value;
        node = itemNode.attributes.getNamedItem("c");
        var mutamerNumber = node.value;
        // Last Transaction
        node = itemNode.attributes.getNamedItem("l");
        var lastTrans = node.value;
        var name = "";
        node = itemNode.attributes.getNamedItem("sel");
        var checked = "";
        var UpdateIsNeeded = false;
        if (node != null && node.value == "1") {
            checked = "checked";
            UpdateIsNeeded = true;
        }

        if (Field("culture").value == "en") {
            // Name
            node = itemNode.selectSingleNode("f0");
            if (node != null) {
                name = node.text;
            }
            if (name == "") {
                node = itemNode.selectSingleNode("f0_AR");
                if (node != null) {
                    name = node.text;
                }
            }
        }
        else // Arabic name
        {
            node = itemNode.selectSingleNode("f0_AR");
            if (node != null) {
                name = node.text;
            }
            if (name == "") {
                node = itemNode.selectSingleNode("f0");
                if (node != null) {
                    name = node.text;
                }
            }
        }

        // Passport number
        var passportNumber = "";
        node = itemNode.selectSingleNode("f1");
        if (node != null) {
            passportNumber = node.text;
        }

        // Package number
        var packageNumber = "";
        node = itemNode.selectSingleNode("PG_NO");
        if (node != null) {
            packageNumber = node.text;
        }

        // Arrival date (From - To)
        node = itemNode.selectSingleNode("f2");
        var arrival = "";
        if (node != null) {
            arrival = node.text;
        }

        if (!ExistMutamer(key)) {
            AddMutamer(nextTrans, key, mutamerNumber, name, passportNumber, arrival, lastTrans, packageNumber, checked);
        }
        if (UpdateIsNeeded) {
            UpdateTransactions();
        }
    }
}

function Field(name) {
    if (isIE) {
        var fld = document.all(name);
        return fld;
    }
    else {
        return null;
    }
}

function GetDomDocument() {
    var dom = new ActiveXObject("Microsoft.XMLDOM");
    return dom;
}

function Post2Server(xmlDoc, url) {
    var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    xmlhttp.Open("POST", url, false);
    xmlhttp.Send(xmlDoc);
    return xmlhttp.responseXML;
}

function ConfirmContinue() {
    var fld = Field("Culture");
    var cul = "ar";
    if (fld == null) {
        fld = Field("CurrentCulture");
    }

    if (fld != null) {
        cul = fld.value;
    }
    var ret = window.showModalDialog('../Confirm_' + cul + '.html', ['Question', 'Do you want to continue?', 'Yes', 'No'], 'dialogWidth:245px;dialogHeight:120px;status:no;');
    if (ret == 1) {
        return true;
    }
    else {
        return false;
    }
}

function ExistMutamer(key) {
    var tbl = Field("TblResults");
    var count = tbl.rows.length;
    var i = 0;

    for (i = count - 1; i >= 1; i--) {
        if (tbl.rows(i).key == key) {
            return true;
        }
    }
    return false;
}

function ClearMutamers() {
    var tbl = Field("TblResults");
    var count = tbl.rows.length;
    var i = 0;
    if (count >= 1) {
        if (ConfirmContinue()) {
            var doc = GetDomDocument();
            var xml = "<root/>";
            doc.loadXML(xml);
            var xmlResponse = Post2Server(doc, "ClearMutamers.aspx");

            for (i = count - 1; i >= 1; i--) {
                tbl.deleteRow(i);
            }
            ClearTransactions();
        }
    }
}

function ShowWait() {
    if (WaitDlg != null) {
        HideWait();
    }
    var waitMsg = "";
    var cult = Field("culture").value;
    if (cult == "ar") {
        waitMsg = "المعالجة ...";
    }
    else {
        waitMsg = "Processing...";
    }

    WaitDlg = window.open("", "", "toolbar=no,locationbar=no,width=220,height=50,screenX=300,screenY=400")
    WaitDlg.document.write("<img src='../images/connect.gif'><B><font color='red' face='Arial'>" + waitMsg + "</font><B>");
}

function HideWait() {
    WaitDlg.close();
}

function checkBrowser() {
    if (navigator.appName == "Microsoft Internet Explorer"
		&& parseInt(navigator.appVersion) >= 4) {
        isIE = true;
        return true;
    }
    // For some reason, appVersion returns 5 for Netscape 6.2 ...
    else if (navigator.appName == "Netscape"
		&& navigator.appVersion.indexOf("5.") >= 0) {
        isIE = false;
        return true;
    }
    else {
        return false;
    }
}

function AddItemToList(text, value, lst) {
    lst.options[lst.options.length] = new Option(text, value);
}

function AddMutamer(nextTrans, key, mutamerNumber, name, passportNumber, arrival, lastTrans, packageNumber, checked) {
    var newRow = Field('TblResults').insertRow();
    var img = "";
    if (lastTrans == "MOFA") {
        img = "mofa.gif";
    }
    else if (lastTrans == "VISA") {
        img = "visa.gif";
    }
    else if (lastTrans == "BORD") {
        img = "bord.gif";
    }
    else if (lastTrans == "EXIT" || lastTrans == "BURY" || lastTrans == "LOCM" || lastTrans == "DETH" || lastTrans == "CCAM") {
        img = "exit.gif";
    }
    // TMOI or else.
    else if (lastTrans == "CHKO") {
        img = "CHKO.gif";
    }
    else if (lastTrans == "CHKI") {
        img = "CHKI.gif";
    }
    else if (lastTrans != "") {
        img = "tmoi.gif";
    }
    // ID
    var cell0 = newRow.insertCell();
    cell0.innerHTML = Field('TblResults').rows.length - 1;
    // CheckBox		
    var cell1 = newRow.insertCell();
    // Icon
    var cell2 = newRow.insertCell();

    if (lastTrans != "") {
        cell1.innerHTML = "<input onClick='javascript:UpdateTransactions()' id='Chk" + key + "' name='" + key + "' type='checkbox' " + checked + ">";
        cell2.innerHTML = "<img src='../images/" + img + "'>";
    }
    // Mutamer Number
    var cell3 = newRow.insertCell();
    cell3.innerHTML = mutamerNumber;
    // Mutamer Name
    var cell4 = newRow.insertCell();
    cell4.innerHTML = name;
    // Mutamer Passport
    var cell5 = newRow.insertCell();
    cell5.innerHTML = passportNumber;
    // Expected Arrival-Departure
    var cell6 = newRow.insertCell();
    cell6.innerHTML = arrival;
    // Mutamer Last Transaction
    var cell7 = newRow.insertCell();
    cell7.innerHTML = lastTrans;
    // Package Number
    var cell8 = newRow.insertCell();
    cell8.innerHTML = packageNumber;

    var nnm = newRow.attributes;
    var namedItem = document.createAttribute("key");
    namedItem.value = key;
    nnm.setNamedItem(namedItem);

    var namedItem = document.createAttribute("status");
    namedItem.value = nextTrans;
    nnm.setNamedItem(namedItem);
}

function moveSelectedOptions(from0, to0) {
    var from = Field(from0);
    var to = Field(to0);
    var itemsFound = new Array();
    // Move them over
    for (var i = 0; i < from.options.length; i++) {
        var o = from.options[i];
        itemsFound[i] = true;
        if (o.selected) {
            if (SearchOptions(to, o.text) == -1) {
                itemsFound[i] = false;
                to.options[to.options.length] = new Option(o.text, o.value, false, false);
            }
        }
    }
    // Delete them from original
    for (var i = (from.options.length - 1); i >= 0; i--) {
        var o = from.options[i];
        if (o.selected) {
            if (!itemsFound[i]) {
                from.options[i] = null;
            }
        }
    }
    from.selectedIndex = -1;
    to.selectedIndex = -1;
}

function moveAllOptions(from0, to0) {
    var from = Field(from0);
    var to = Field(to0);
    selectAllOptions(from);
    moveSelectedOptions(from0, to0);
}

function selectAllOptions(obj) {
    for (var i = 0; i < obj.options.length; i++) {
        obj.options[i].selected = true;
    }
}

function SearchOptions(OptionList, value) {
    var o;
    for (var i = 0; i < OptionList.options.length; i++) {
        o = OptionList.options[i];
        if (o.text == value) {
            return i;
        }
    }
    return -1;
}

function ClearOptions(OptionList) {
    // Always clear an option list from the last entry to the first
    for (var x = OptionList.length; x >= 0; x--) {
        OptionList[x] = null;
    }
}

function Translate(key) {
    return eval(key + "_" + Field("Culture").value);
}

function SelectUnSelectAll(obj) {
    var tbl = Field("TblResults");
    var count = tbl.rows.length;
    var i = 0;
    var chk;

    if (count > 0) {
        for (i = count - 1; i >= 1; i--) {
            chk = Field("Chk" + tbl.rows(i).key);
            if (chk != null) {
                chk.checked = obj.checked;
            }
        }
        UpdateTransactions();
    }
}

function UpdateTransactions() {
    ShowWait();
    var o;
    var status = parseInt("111111111111111111111111111111", 2);
    var tbl = Field("TblResults");
    var temp;

    var count = tbl.rows.length;
    var i = 0;
    var chk;
    var CountChecked = 0;

    for (i = count - 1; i >= 1; i--) {
        chk = Field("Chk" + tbl.rows(i).key);
        if (chk != null && chk.checked) {
            temp = tbl.rows(i).status;
            CountChecked++;
            status = status & parseInt(temp, 2);
        }
    }
    for (var k = 0; k < CountTransaction; k++) {
        Field("TransLnk" + k).className = "off";
        Field("TransImg" + k).src = "images/trans_off.jpg";
    }

    if (CountChecked > 0) {
        var status1 = status.toString(2);
        var c;
        var counter = 0;
        var eaCode = Field("EACode").value;
        var lightOn = true;
        
        for (var j = status1.length - 1; j >= 0; j--) {
            lightOn = true;
            c = status1.charAt(j);
            // We need to check for EA
            // EA can only run BORD, VISA and CCAM transactions
            if (eaCode != "-1") {
                lightOn = (Transactions[counter] == BORD || Transactions[counter] == VISA || Transactions[counter] == CCAM);
            }
            if (Transactions[counter] == EVIS || Transactions[counter] == EDPK) {
                lightOn = false;
            }

            if (c == '1' && lightOn) {
                Field("TransLnk" + counter).className = "on";
                Field("TransImg" + counter).src = "images/trans_on.jpg";
            }


            counter++;
        }
    }
    HideWait();
}

function SearchList(lstID, txtID) {
    var lst = Field(lstID);
    var txt = Field(txtID);
    var o;
    var lstVal = "";
    var lstTxt = "";
    var txtVal = txt.value;
    if (txtVal != "") {
        txtVal = txtVal.toLowerCase();
        var index = -1;
        for (var i = 0; i < lst.options.length; i++) {
            o = lst.options[i];
            lstVal = o.value.toLowerCase();
            lstTxt = o.text.toLowerCase();

            if (lstVal == txtVal || lstTxt == txtVal) {
                index = i;
                break;
            }
        }
        if (index == -1) {
            for (var i = 0; i < lst.options.length; i++) {
                o = lst.options[i];
                lstVal = o.value.toLowerCase();
                lstTxt = o.text.toLowerCase();

                if (lstVal.indexOf(txtVal) != -1 || lstTxt.indexOf(txtVal) != -1) {
                    index = i;
                    break;
                }
            }
        }
        if (index != -1) {
            lst.selectedIndex = index;
        }
        else {
            lst.selectedIndex = 0;
        }

    }

}
function GetPackageDetails() {

    var lstPackage = document.EditGroup.LstPackage;
    var temp = lstPackage.options[lstPackage.selectedIndex].value;
    var arrValues = temp.split(',');

    var packageID = arrValues[0];
    var packageEntryType = arrValues[6];
    if (packageID > 0) {
        Field("TblPackages").rows[1].cells[0].innerHTML = "<a id='PackageIDLink" + "' class='off' href='../Package/EditPackage.aspx?id=" + packageID + "'>" + packageID + "</a>";

        var packageName = arrValues[1];
        Field("TblPackages").rows[1].cells[1].innerHTML = packageName;

        var packagePrice = arrValues[2];
        Field("TblPackages").rows[1].cells[2].innerHTML = packagePrice;

        var StartingDate = arrValues[3];
        Field("TblPackages").rows[1].cells[3].innerHTML = StartingDate;

        var EndDate = arrValues[4];
        Field("TblPackages").rows[1].cells[4].innerHTML = EndDate;

        var Duration = arrValues[5];
        Field("TblPackages").rows[1].cells[5].innerHTML = Duration;
    }
    else {
        for (var i = 0; i < Field("TblPackages").rows[1].cells.length; i++) {
            Field("TblPackages").rows[1].cells[i].innerHTML = "";
        }
    }

}
function GetImportPackageDetails() {

    var lstPackage = document.ImportGroup.LstPackage;
    var temp = lstPackage.options[lstPackage.selectedIndex].value;
    var arrValues = temp.split(',');

    var packageID = arrValues[0];
    var packageEntryType = arrValues[6];
    if (packageID > 0) {
        Field("TblPackages").rows[1].cells[0].innerHTML = "<a id='PackageIDLink" + "' class='off' href='../Package/EditPackage.aspx?id=" + packageID + "'>" + packageID + "</a>";

        var packageName = arrValues[1];
        Field("TblPackages").rows[1].cells[1].innerHTML = packageName;

        var packagePrice = arrValues[2];
        Field("TblPackages").rows[1].cells[2].innerHTML = packagePrice;

        var StartingDate = arrValues[3];
        Field("TblPackages").rows[1].cells[3].innerHTML = StartingDate;

        var EndDate = arrValues[4];
        Field("TblPackages").rows[1].cells[4].innerHTML = EndDate;

        var Duration = arrValues[5];
        Field("TblPackages").rows[1].cells[5].innerHTML = Duration;

        if (document.ImportGroup.TxtExpectedArrivalDate.value != null && document.ImportGroup.TxtExpectedArrivalDate.value != "" && document.ImportGroup.TxtExpectedArrivalDate.value.length > 0) {
            GetArrivalDate();
        }
    }
    else {
        for (var i = 0; i < Field("TblPackages").rows[1].cells.length; i++) {
            Field("TblPackages").rows[1].cells[i].innerHTML = "";
        }
    }

}
function GetArrivalDate() {
    var lstPackage = document.ImportGroup.LstPackage;
    var txtExpArrivalDate = document.ImportGroup.TxtExpectedArrivalDate;

    var temp = lstPackage.options[lstPackage.selectedIndex].value;
    var arrValues = temp.split(',');

    var packageID = arrValues[0];
    var packageEntryType = arrValues[6];

    if (packageID > 0 && txtExpArrivalDate.value != null && txtExpArrivalDate.value != "" && txtExpArrivalDate.value.length > 0) {
        var Duration = arrValues[5];
        var str = txtExpArrivalDate.value.split("/");
        var DepDt = new Date();
        DepDt.setFullYear(str[2], Number(str[1]) - 1, str[0]);

        DepDt.setDate(DepDt.getDate() + Number(Duration));

        //alert(DepDt.getDate() + "/" + DepDt.getMonth() + "/" + DepDt.getYear());

        document.ImportGroup.TxtExpectedDepartureDate.value = xx(Number(DepDt.getDate())) + "/" + xx(Number(DepDt.getMonth()) + Number(1)) + "/" + DepDt.getYear();
    }
}
function xx(x) {
    if (x > 0 && x < 10) return (0 + x.toString());
    else return x;
}

function UpdateHasMuhram() {
    if (document.EditGroup.ChkOsbatNisaa.checked) {
        document.all('ChkHasMuhram').disabled = false;
    }
    else
        document.EditGroup.ChkHasMuhram.disabled = true;
}

function ValidateStartEndDates(TxtFrom, TxtTo) {
    var DateFrom = document.all(TxtFrom).value;
    var DateTo = document.all(TxtTo).value;

    if (!validateDate(DateFrom)) {
        window.alert(ClientAlert_InvalidStartDate);
        return false;
    }
    else if (!validateDate(DateTo)) {
        window.alert(ClientAlert_InvalidEndDate);
        return false;
    }
    else {
        return true;
    }
}
function ValidateDateEntry(TxtDate) {
    var DateEntry = document.all(TxtDate).value;

    if (!validateDate(DateEntry)) {
        window.alert(ClientAlert_InvalidDate);
        return false;
    }
    else {
        return true;
    }
}

function ValidateArrDepDates(TxtArrivalFrom, TxtArrivalTo, TxtDepartureFrom, TxtDepartureTo) {
    var ArrivalFrom = Field(TxtArrivalFrom).value;
    var ArrivalTo = Field(TxtArrivalTo).value;
    var DepartureFrom = Field(TxtDepartureFrom).value;
    var DepartureTo = Field(TxtDepartureTo).value;

    if (!validateDate(ArrivalFrom)) {
        window.alert(ClientAlert_InvalidArrivalFrom);
        return false;
    }
    else if (!validateDate(ArrivalTo)) {
        window.alert(ClientAlert_InvalidArrivalTo);
        return false;
    }
    else if (!validateDate(DepartureFrom)) {
        window.alert(ClientAlert_InvalidDepartureFrom);
        return false;
    }
    else if (!validateDate(DepartureTo)) {
        window.alert(ClientAlert_InvalidDepartureTo);
        return false;
    }

    else {
        return true;
    }
}

function BtnSubmit_OnClick(func) {
    var btn = document.all('BtnSubmit');
    if (btn != null) {
        var initialBtnClick = btn.onclick.toString();
        var initialBtnClickBody = initialBtnClick.substring(initialBtnClick.indexOf('{') + 1, initialBtnClick.lastIndexOf('}') - 1);
        var newBtnClickBody = "if(!" + func + "){return false;} else{" + initialBtnClickBody + "}";
        var newBtnClickHandler = new Function(newBtnClickBody);
        btn.onclick = newBtnClickHandler;
    }
}

function BtnSend_OnClick(func, param1) {
    var btn = document.all('BtnSend');
    if (btn != null) {
        var initialBtnClick = btn.onclick.toString();
        var initialBtnClickBody = initialBtnClick.substring(initialBtnClick.indexOf('{') + 1, initialBtnClick.lastIndexOf('}') - 1);
        var newBtnClickBody = "if(!" + func + "('" + param1 + "')" + "){return false;} else{" + initialBtnClickBody + "}";
        var newBtnClickHandler = new Function(newBtnClickBody);
        btn.onclick = newBtnClickHandler;
    }
}
function BtnSearch_OnClick(func, param1, param2) {
    var btn = document.all('BtnSearch');
    if (btn != null) {
        var initialBtnClick = btn.onclick.toString();
        var initialBtnClickBody = initialBtnClick.substring(initialBtnClick.indexOf('{') + 1, initialBtnClick.lastIndexOf('}') - 1);
        var newBtnClickBody = "if(!" + func + "('" + param1 + "','" + param2 + "')" + "){return false;} else{" + initialBtnClickBody + "}";
        var newBtnClickHandler = new Function(newBtnClickBody);
        btn.onclick = newBtnClickHandler;
    }
}
function ValidateArrDepDatesGroupPassport(TxtArrivalFrom, TxtArrivalTo, TxtDepartureFrom, TxtDepartureTo) {
    if (ValidateArrDepDates(TxtArrivalFrom, TxtArrivalTo, TxtDepartureFrom, TxtDepartureTo)) {
        if (ValidateGroupMutamer())
            return true;
        else {
            alert(ClientAlert_InvalidSearchCriteria);
            return false;
        }
    }
    else
        return false;
}
function ValidateSearchEmbassyGroup(TxtGroup, TxtPassportNumber) {
    if (ValidateGroupMutamer(TxtGroup, TxtPassportNumber))
        return true;
    else {
        alert(ClientAlert_InvalidSearchCriteria);
        return false;
    }
}
function ValidateGroupMutamer(TxtGroup, TxtPassportNumber) {
    try {
        var passportText = document.all(TxtGroup).value;
        var groupText = document.all(TxtPassportNumber).value;
        if (passportText == '' && groupText == '')
            return false;
        else
            return true;
    }
    catch (er) { return false; }
}
function ValidateCriteriaAndSearch(TxtGroup, TxtPassportNumber, rdoBtnName, cult) {
    if (ValidateSearchEmbassyGroup(TxtGroup, TxtPassportNumber)) {
        var orderBy = document.all(rdoBtnName);
        var passport = document.all(TxtPassportNumber).value;
        var groupCode = document.all(TxtGroup).value;
        var procName = '';
        if (orderBy.checked && cult == 'ar')
            procName = 'lastar';
        else if (orderBy.checked && cult == 'en')
            procName = 'lasten';
        else if (!orderBy.checked && cult == 'ar')
            procName = 'serialar';
        else
            procName = 'serialen';
        window.open('EmbassyMutamer.aspx?GroupId=' + groupCode + '&PassId=' + passport + '&Emb=' + procName, 'GetMofa', 'toolbar=no,resizable=yes,scrollbars=yes,width=500,height=600').focus();
    }
    return false;
}
function GetGroupFileName(x) {
    var txtGroupName = document.ImportGroup.TxtGroupName;
    var str = x.value.split("\\");
    var fName = str[str.length - 1];
    var fNames = fName.split(".");
    fName = "";
    for (i = 0; i < fNames.length - 1; i++) {
        if (i == 0) fName = fNames[i];
        else fName = fName + "." + fNames[i];
    }
    txtGroupName.value = fName;

}