﻿

// init DDL objects for include
var objRegions;
var objDepts;
var objPropTypes;
//var initClips;

function jsInitTextbox(obj, val2) {

    if (obj.value == val2) {
        obj.value = '';
    }

}

function jsReinstateTextbox(obj, val2) {

    if (obj.value == "") {
        obj.value = val2;
    }

}

function jsResetTextbox(obj, val2) {

    obj.value = val2;
    
}



function lastSelected(e/*pass as: event*/, menuObject) {
    /*returns true or number of last selected index if a selection (NOT unselection) has been performed by the user*/
    if (typeof menuObject == "string") { menuObject = document.getElementById(menuObject); };
    if (!menuObject) { return false; };
    if (!window['_currSelections']) {/*all browsers*/
        window['_currSelections'] = [];
        if (menuObject.selectedIndex >= 0/*preselected present*/) {
            var i = 0;
            for (; i < menuObject.options.length; i++) {
                if (menuObject.options[i].selected && typeof _currSelections[i] == "undefined") {
                    _currSelections.push(i);
                    return menuObject.options[i].value;
                };
            }
        }
        return true;
    };
    e = e || event;
    e = (e.target) ? e.target : (e.srcElement) ? e.srcElement : null;
    if (e && e.nodeName.toUpperCase() == "OPTION") {/*only browsers that detect event source as OPTION*/

        return menuObject.options[e.index].value;
        if (e.selected) {/*event performed a selection*/
            _currSelections.push(e.index);
            //return e.index; /*return index number*/
        }
        else {/*event unselected*/
            for (var c = 0; c < _currSelections.length; c++) {
                if (_currSelections[c] == e.index) {
                    _currSelections.splice(c, 1);
                };
            }
        };
    }
    else {/*only browsers that detect event source as SELECT*/
      
        var temp = [];
        for (var i = 0; i < menuObject.options.length; i++) {
            if (menuObject.options[i].selected) {
                temp.push(i); 
                return menuObject.options[i].value;
                
            };
        }
        if (temp.length < _currSelections.length) {/*event unselected*/
            _currSelections = temp;
        }
        else if (temp.length > _currSelections.length) {/*event performed a selection; find which one:*/
            outer:
            for (var c = 0; c < _currSelections.length; c++) {
                var isIn = false;
                for (var t = 0; t < temp.length; t++) {
                    if (_currSelections[c] == temp[t]) { isIn = t; break; };
                }
                if (typeof isIn == "number") {
                    temp.splice(t, 1);
                };
            }
            _currSelections.push(temp[0]);
            return temp[0];
        };
        return true;
    };
    return false;
    /* keep this comment to reuse freely:
    http://www.fullposter.com/?1 */
}


var arrSector = [];
var arrPropTypes = [];

var objSector;
var objPropTypes;

var strPage = "home";

$(document).ready(function() {


    objSector = document.getElementById('ctl00_ContentPlaceHolder1_SearchForm_Home1_DDLSector');
    objPropTypes = document.getElementById('ctl00_ContentPlaceHolder1_SearchForm_Home1_DDLPropertyType');

    if (objSector == null) {
        objSector = document.getElementById('ctl00_ContentPlaceHolder1_SearchForm_Results1_DDLSector');
        objPropTypes = document.getElementById('ctl00_ContentPlaceHolder1_SearchForm_Results1_DDLPropertyType');
        strPage = "results";

        if (objSector == null) {
            objSector = document.getElementById('ctl00_ContentPlaceHolder1_SearchForm_Internal1_DDLSector');
            objPropTypes = document.getElementById('ctl00_ContentPlaceHolder1_SearchForm_Internal1_DDLPropertyType');
            strPage = "internal";
        }
    }

    initMenus();
});

function initMenus() {

    //alert(objRegions);
    for (var i = 0; i < objSector.options.length; i++) {
        if (objSector.options[i].selected == true) {
            arrSector.push(objSector.options[i].value);
        }
    }    

    for (var i = 0; i < objPropTypes.options.length; i++) {
        if (objPropTypes.options[i].selected == true) {
            arrPropTypes.push(objPropTypes.options[i].value);
        }
    }

    //alert(String(arrDepts));

    //alert(arrDepts);
}

function jsToggleRegions(id, strname) {

    //alert(id)

    for (var i = 0; i < objDepts.options.length; i++) {
        if (objDepts.options[i].value == id) {
            if (objDepts.options[i].selected == true) {
                objDepts.options[i].selected = false;

                for (var i2 = 0; i2 < arrDepts.length; i2++) {
                    if (arrDepts[i2] == id) {
                        n = i2;
                        jsCleanRegion(arrDepts[i2]);
                        //alert("REMOVING - " + id);                            
                    }
                }
                arrDepts.splice(n, 1);

            }
            else {
                //alert("ADDING - " + id);
                objDepts.options[i].selected = true;
                arrDepts[arrDepts.length] = id;
            }
        }
    }

    //alert(arrDepts.length + " - " + arrDepts);

}

function jsToggleFlash() {

    arrDeptsForFlash = [];
    for(var i=0; i<arrDepts.length; i++){
        if (arrDepts[i] < 10)
            arrDeptsForFlash.push(PadDigits(arrDepts[i], 2));
        else
            arrDeptsForFlash.push(arrDepts[i]);
    }
    //alert(arrDepts);
    var flashMap = document.getElementById("flashMap");
    flashMap.activateRegions(arrDeptsForFlash);
}


function jsRegionsHandler() {
    //var id = lastSelected(e, object);

    // Was it selected or deselected

    for (var i = 0; i < objRegions.options.length; i++) {
        if (objRegions.options[i].selected == true) {
            //alert(arrRegionsList[74]);
            arrRegionDepts = arrRegionsList[objRegions.options[i].value].split(",");
            for (j = 0; j < arrRegionDepts.length; j++) {
                arrDepts.splice(arrRegionDepts[j], 1);
                arrDepts.push(arrRegionDepts[j]);
            }
        }
    }

    //alert(arrRegions[id]);
    //alert(arrDepts);
    if (strPage == "home") {
        jsToggleFlash();
    }

}

function jsCleanRegion(deptId) {

    for (var regId in arrRegionsList) {
        arrRegionDepts = arrRegionsList[regId].split(",");

        for (var i = 0; i < arrRegionDepts.length; i++) {
            //alert(arrRegionDepts[i] + " - " + deptId);
            if (arrRegionDepts[i] == deptId) {
                // Deselect this region
                for (j = 0; j < objRegions.options.length; j++) {
                    if (objRegions.options[j].value == regId) {
                        objRegions.options[j].selected = false;

                    }
                }
            }
        }
    }

    arrRegions = [];
    for (i = 0; i < objRegions.options.length; i++) {
        if (objRegions.options[i].selected == true)
            arrRegions.push(objRegions.options[i].value);
    }

}



function jsAddRegion(regId) {

    var arrRegionDepts = arrRegionsList[regId].split(",");

    for (i = 0; i < arrRegionDepts.length; i++) {
        //alert("ADDING " + arrRegionDepts[i]);
        //spliceByValue(arrRegionDepts[i]);
        arrDepts.push(arrRegionDepts[i]);

        for (j = 0; j < objDepts.options.length; j++) {
            if (objDepts.options[j].value == arrRegionDepts[i]) {
                //alert("SELECTING " + obj.options[j].value);
                objDepts.options[j].selected = true;
            }
        }
    }

    // create arrDepts from list
    arrDepts = [];
    for (i = 0; i < objDepts.options.length; i++) {
        if (objDepts.options[i].selected == true)
            arrDepts.push(objDepts.options[i].value);
    }
}

function jsRemoveRegion(regId) {

    var arrRegionDepts = arrRegionsList[regId].split(",");

    for (i = 0; i < arrRegionDepts.length; i++) {
        //alert("REMOVING " + arrRegionDepts[i]);
        //spliceByValue(arrRegionDepts[i]);

        for (j = 0; j < objDepts.options.length; j++) {
            if (objDepts.options[j].value == arrRegionDepts[i]) {
                //alert("REMOVING " + obj.options[j].value);
                objDepts.options[j].selected = false;
            }
        }
    }

    // create arrDepts from list
    arrDepts = [];
    for (i = 0; i < objDepts.options.length; i++) {
        if (objDepts.options[i].selected == true)
            arrDepts.push(objDepts.options[i].value);
    }

    // alert("DEPTS: " + arrDepts);
}


function jsToggleHandler(strList, e, object) {

    var id = lastSelected(e, object);
    var bInArray = false;

    // Was it selected or deselected
    if (strList == "sector") {
        // first reselect previously clicked items
        for (var i = 0; i < arrSector.length; i++) {
            for (var i2 = 0; i2 < objSector.options.length; i2++) {
                if (arrSector[i] == objSector.options[i2].value)
                    objSector.options[i2].selected = true;
            }
        }

        // now add or remove recently clicked item
        for (var i = 0; i < objSector.options.length; i++) {
            if (objSector.options[i].value == id) {
                if (in_array(id, arrSector)) {
                    objSector.options[i].selected = false;
                }
                else {
                    objSector.options[i].selected = true;
                }
            }
        }
        // Rebuild array
        arrSector = [];
        for (var i = 0; i < objSector.options.length; i++) {
            if (objSector.options[i].selected == true)
                arrSector.push(objSector.options[i].value);
        }

    }
    else if (strList == "regions") {
        // first reselect previously clicked items
        for (var i = 0; i < arrRegions.length; i++) {
            for (var i2 = 0; i2 < objRegions.options.length; i2++) {
                if (arrRegions[i] == objRegions.options[i2].value)
                    objRegions.options[i2].selected = true;
            }
        }

        // now add or remove recently clicked item
        for (var i = 0; i < objRegions.options.length; i++) {
            if (objRegions.options[i].value == id) {
                if (in_array(id, arrRegions)) {
                    objRegions.options[i].selected = false;
                    jsRemoveRegion(objRegions.options[i].value);
                }
                else {
                    objRegions.options[i].selected = true;
                    jsAddRegion(objRegions.options[i].value);
                }
            }
        }
        // Rebuild array
        arrRegions = [];
        for (var i = 0; i < objRegions.options.length; i++) {
            if (objRegions.options[i].selected == true)
                arrRegions.push(objRegions.options[i].value);
        }

        // Select all departements
        //alert(arrDepts);
        //alert(arrRegions);
        //jsRegionsHandler();
        if (strPage == "home") {
            jsToggleFlash();
        }
    }
    else if (strList == "departements") {

        // first reselect previously clicked items
        for (var i = 0; i < arrDepts.length; i++) {
            for (var i2 = 0; i2 < objDepts.options.length; i2++) {
                if (arrDepts[i] == objDepts.options[i2].value)
                    objDepts.options[i2].selected = true;
            }
        }

        // now add or remove recently clicked item
        for (var i = 0; i < objDepts.options.length; i++) {
            if (objDepts.options[i].value == id) {
                if (in_array(id, arrDepts)) {
                    objDepts.options[i].selected = false;
                    // Remove region  if selected
                    jsCleanRegion(objDepts.options[i].value);
                }
                else {
                    objDepts.options[i].selected = true;
                }
            }
        }
        // Rebuild array
        arrDepts = [];
        for (var i = 0; i < objDepts.options.length; i++) {
            if (objDepts.options[i].selected == true) {               
                arrDepts.push(objDepts.options[i].value, 2);
            }
        }

        //lert(arrDepts);
        if (strPage == "home") {
            jsToggleFlash();
        }
    }
    else if (strList == "proptypes") {

        // first reselect previously clicked items
        for (var i = 0; i < arrPropTypes.length; i++) {
            for (var i2 = 0; i2 < objPropTypes.options.length; i2++) {
                if (arrPropTypes[i] == objPropTypes.options[i2].value)
                    objPropTypes.options[i2].selected = true;
            }
        }

        // now add or remove recently clicked item
        for (var i = 0; i < objPropTypes.options.length; i++) {
            if (objPropTypes.options[i].value == id) {
                if (in_array(id, arrPropTypes)) {
                    objPropTypes.options[i].selected = false;
                }
                else {
                    objPropTypes.options[i].selected = true;
                }
            }
        }
        // Rebuild array
        arrPropTypes = [];
        for (var i = 0; i < objPropTypes.options.length; i++) {
            if (objPropTypes.options[i].selected == true)
                arrPropTypes.push(objPropTypes.options[i].value);
        }

        //lert(arrDepts);
    }


}

function spliceByValue(val) {

    var idx;
    for (i = 0; i < arrDepts.length; i++) {
        if (arrDepts[i].value == val) {
            idx = i;
        }
    }

    arrDepts.splice(idx, 1);
}

function in_array(what, where) {
    var a = false;
    for (var i = 0; i < where.length; i++) {
        if (what == where[i]) {
            a = true;
            break;
        }
    }
    return a;

}


function PadDigits(n, totalDigits) {
    n = n.toString();
    var pd = '';
    if (totalDigits > n.length) {
        for (i = 0; i < (totalDigits - n.length); i++) {
            pd += '0';
        }
    }
    return pd + n.toString();
} 