﻿var cm={dly:250,dmc:false,wp:1,shm:1, 
dropmenuobj:null,ie:document.all,firefox:document.getElementById&&!document.all, swipetimer: undefined, bottomclip:0,
getposOffset:function(what, offsettype){
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;}
return totaloffset;},
swipeeffect:function(){
if (this.bottomclip<parseInt(this.dropmenuobj.offsetHeight)){
this.bottomclip+=10+(this.bottomclip/10)
this.dropmenuobj.style.clip="rect(0 auto "+this.bottomclip+"px 0)"}else
return
this.swipetimer=setTimeout("cm.swipeeffect()", 20)},
showhide:function(obj, e){
if (this.ie || this.firefox)
this.dropmenuobj.style.left=this.dropmenuobj.style.top="-500px"
if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover"){
if (this.wp==1){
if (typeof this.swipetimer!="undefined")
clearTimeout(this.swipetimer)
obj.clip="rect(0 auto 0 0)"
this.bottomclip=0
this.swipeeffect()}obj.visibility="visible"}
else if (e.type=="click")
obj.visibility="hidden"},
iecompattest:function(){
return (document.compatMode && document.compatMode!="BackCompat")?document.documentElement:document.body},
clearbrowseredge:function(obj, whichedge){
var edgeoffset=0
if (whichedge=="rightedge"){
var windowedge=this.ie && !window.opera? this.iecompattest().scrollLeft+this.iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
this.dropmenuobj.contentmeasure=this.dropmenuobj.offsetWidth
if (windowedge-this.dropmenuobj.x < this.dropmenuobj.contentmeasure) 
edgeoffset=this.dropmenuobj.contentmeasure-obj.offsetWidth}else{
var topedge=this.ie && !window.opera? this.iecompattest().scrollTop : window.pageYOffset
var windowedge=this.ie && !window.opera? this.iecompattest().scrollTop+this.iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
this.dropmenuobj.contentmeasure=this.dropmenuobj.offsetHeight
if (windowedge-this.dropmenuobj.y < this.dropmenuobj.contentmeasure){ 
edgeoffset=this.dropmenuobj.contentmeasure+obj.offsetHeight
if ((this.dropmenuobj.y-topedge)<this.dropmenuobj.contentmeasure)
edgeoffset=this.dropmenuobj.y+obj.offsetHeight-topedge}}
return edgeoffset},
dropit:function(obj, e, dropmenuID){
if (this.dropmenuobj!=null) 
this.dropmenuobj.style.visibility="hidden"
this.clearhidemenu()
if (this.ie||this.firefox){
obj.onmouseout=function(){cm.delayhidemenu()}
obj.onclick=function(){return !cm.dmc} 
this.dropmenuobj=document.getElementById(dropmenuID)
this.dropmenuobj.onmouseover=function(){cm.clearhidemenu()}
this.dropmenuobj.onmouseout=function(e){cm.dynamichide(e)}
this.dropmenuobj.onclick=function(){cm.delayhidemenu()}
this.showhide(this.dropmenuobj.style, e)
this.dropmenuobj.x=this.getposOffset(obj, "left")
this.dropmenuobj.y=this.getposOffset(obj, "top")
this.dropmenuobj.style.left=this.dropmenuobj.x-this.clearbrowseredge(obj, "rightedge")+"px"
this.dropmenuobj.style.top=this.dropmenuobj.y-this.clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+1+"px"
this.positionshim() }},
positionshim:function(){ 
if(this.shm && typeof this.shimobject!="undefined"){
if(this.dropmenuobj.style.visibility=="visible"){
this.shimobject.style.width=this.dropmenuobj.offsetWidth+"px"
this.shimobject.style.height=this.dropmenuobj.offsetHeight+"px"
this.shimobject.style.left=this.dropmenuobj.style.left
this.shimobject.style.top=this.dropmenuobj.style.top}
this.shimobject.style.display=(this.dropmenuobj.style.visibility=="visible")?"block":"none"}},
hideshim:function(){
if(this.shm&&typeof this.shimobject!="undefined")
this.shimobject.style.display='none'},
contains_firefox:function(a, b){
while(b.parentNode)
if((b=b.parentNode)==a)
return true;
return false;},
dynamichide:function(e){
var evtobj=window.event?window.event:e
if (this.ie&&!this.dropmenuobj.contains(evtobj.toElement))
this.delayhidemenu()
else if(this.firefox&&e.currentTarget!=evtobj.relatedTarget&& !this.contains_firefox(evtobj.currentTarget, evtobj.relatedTarget))
this.delayhidemenu()},
delayhidemenu:function(){
this.delayhide=setTimeout("cm.dropmenuobj.style.visibility='hidden';cm.hideshim()",this.dly)},
clearhidemenu:function(){
if(this.delayhide!="undefined")
clearTimeout(this.delayhide)},
st:function(){
for(var ids=0; ids<arguments.length; ids++){
var menuitems=document.getElementById(arguments[ids]).getElementsByTagName("a")
for(var i=0; i<menuitems.length; i++){
if(menuitems[i].getAttribute("rel")){
var relvalue=menuitems[i].getAttribute("rel")
menuitems[i].onmouseover=function(e){
var event=typeof e!="undefined"?e:window.event
cm.dropit(this,event,this.getAttribute("rel"))}}}}
if (window.createPopup && !window.XmlHttpRequest){ 
document.write('<IFRAME id="iframeshim" src="" style="display:none;left:0;top:0;z-index:90;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)" frameBorder="0" scrolling="no"></IFRAME>')
this.shimobject=document.getElementById("iframeshim")}}}
function $d(i,d){return document.getElementById(i).style.display=d;}
function $(i) { return document.getElementById(i); }

var selectedLimit = 10;
function propSelect(c, i, t) {
    if (c.className == "pselect") {
        if (countSelected() >= selectedLimit) {
            alert('Your list already contains ' + selectedLimit + ' properties. Remove any to be able to add new one.');
            return;
        }
        c.className = "punselect";
        setText(c, "Property Selected (Unselect)");
        saveSelectedProperty(i, t);
    }
    else {
        c.className = "pselect";
        setText(c, "Select Property");
        removeSelectedProperty(i);
    }
    setSelectedCount();
}

function setText(c,t) {
    if (document.all) {
        c.innerText = t;
    } else {
        c.textContent = t;
    }
}

function saveSelectedProperty(i, t) {
    var propertyIds = getCookie("pids");
    var propertyInTheList = false;
    
    if (propertyIds != null) {
        var mySplitResult = propertyIds.split("#");

        for (j = 0; j < mySplitResult.length; j++) {
            if (parseInt(mySplitResult[j]) == i) {
                propertyInTheList = true;
                break;
            }
        }
    }

    if (propertyInTheList == false) {
        propertyIds = propertyIds.concat(i.toString(), "$", t.toString(), "#");
        setCookie("pids", propertyIds, 30);
    }
}

function removeSelectedProperty(i) {
    var propertyIds = getCookie("pids");
    var newValue = "";

    if (propertyIds != null) {
        var mySplitResult = propertyIds.split("#");

        for (j = 0; j < mySplitResult.length; j++) {
            var splititem = mySplitResult[j].split("$");
            var idFromList = parseInt(splititem[0]);
            if (!isNaN(idFromList) && (idFromList != i)) {
                newValue = newValue.concat(mySplitResult[j].toString(), "#");
            }
        }
    }
    setCookie("pids", newValue, 30);
}

function setCookie(c_name, value, expiredays) {
    var today = new Date();
    today.setTime(today.getTime());
    expiredays = expiredays * 1000 * 60 * 60 * 24;
    var expires_date = new Date(today.getTime() + (expiredays));

    document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + expires_date.toGMTString()) + ";path=/";
}

function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}

function setSelectedCount() {
    var propertyCount = countSelected();
    setText(document.getElementById("selected-count"), propertyCount);
}

function countSelected() {
    var propertyIds = getCookie("pids");
    var propertyCount = 0;

    if (propertyIds != null) {
        var mySplitResult = propertyIds.split("#");

        for (j = 0; j < mySplitResult.length; j++) {
            var idFromList = parseInt(mySplitResult[j]);
            if (!isNaN(idFromList)) {
                propertyCount = propertyCount + 1;
            }
        }
    }
    return propertyCount;
}
