
function writeSource(div) {
    if (!document.getElementById) { return; }
    var o = document.getElementById(div);
    if (typeof (o) == "undefined" || o == null) { return; }
    var s = o.innerHTML;
    if (s == null || s.length == 0) {
        return;
    }
    else {
        var i;
        for (i = 0; s.charAt(i) == " " || s.charAt(i) == "\n" || s.charAt(i) == "\r" || s.charAt(i) == "\t"; i++) { }
        s = s.substring(i);
        for (i = s.length; i > 0; i--) {
            if (s.charAt(i) == "<") {
                s = s.substring(0, i) + "&lt;" + s.substring(i + 1);
            }
        }
        for (i = s.length; i > 0; i--) {
            if (s.charAt(i) == ">") {
                s = s.substring(0, i) + "&gt;" + s.substring(i + 1);
            }
        }
        for (i = s.length; i > 0; i--) {
            if (s.charAt(i) == "\t") {
                s = s.substring(0, i) + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + s.substring(i + 1);
            }
        }
        for (i = s.length; i > 0; i--) {
            if (s.charAt(i) == "\n") {
                s = s.substring(0, i) + "<BR>" + s.substring(i + 1);
            }
        }
        s = s + "<BR>";
    }
    document.write('<A STYLE="font-family:arial; font-size:x-small; text-decoration:none;" HREF="#" onClick="var d=document.getElementById(\'jssource' + div + '\').style; if(d.display==\'block\'){d.display=\'none\';this.innerText=\'+ Show Source\';}else{d.display=\'block\';this.innerText=\'- Hide Source\';} return false;">+ Show Source</A><BR>');
    document.write('<SPAN ID="jssource' + div + '" STYLE="display:none;background-color:#EEEEEE"><TT>' + s + '</TT></SPAN>');
}


/*--------------  this functions are related to the calendar control ---------*/

function clear_textbox(objTB) {

    if (objTB.value == "dd/mm/yyyy")
        objTB.value = "";
    objTB.style.color = "black";
}

function fill_textbox(objTB) {

    if (objTB.value == "") {
        objTB.value = "dd/mm/yyyy";
        objTB.style.color = "gray";
    }

}

function styleDate(element) {
    var obj = document.getElementById(element);
    obj.style.color = "black";
}

function calendarStyle(id) {
    debugger;
    var objTB = document.getElementById(id);
    if (objTB.value != "dd/mm/yyyy") {
        objTB.style.color = "black";
    }
    else {
        objTB.style.color = "gray";
    }
}

//-------------------------------------------------------------------------------//


function UpdateAdvLocationStatus(objCheck) {
    if (objCheck.id == "comboUK" || objCheck.id == "comboLondon") {
        if (objCheck.checked)
            document.getElementById("objAdvancedSearch_linkEditRegions").disabled = "true";
        else
            document.getElementById("objAdvancedSearch_linkEditRegions").disabled = "";
    }
    else {
        if (objCheck.checked)
            document.getElementById("objAdvancedSearch_linkEditRegions").disabled = "";
    }
}

//--------------------------------------------------------------------------------//


function validateDate(input) {
    //var input = document.getElementById(dtControl)

    var validformat = /^\d{1,2}\/\d{1,2}\/\d{4}$/ //Basic check for format validity
    var returnval = false

    if (input.value == "dd/mm/yyyy")
        return true

    if (!validformat.test(input.value)) {
        alert('Invalid Date Format. Please type the date in the format:"dd/mm/yyyy"')
        return false
    }

    else {
        //Detailed check for valid date ranges    
        var dayfield = input.value.split("/")[0]
        var monthfield = input.value.split("/")[1]
        var yearfield = input.value.split("/")[2]

        var dayobj = new Date(yearfield, monthfield - 1, dayfield)
        if ((dayobj.getMonth() + 1 != monthfield) || (dayobj.getDate() != dayfield) || (dayobj.getFullYear() != yearfield))
            alert('Invalid Day, Month, or Year range detected. Please correct.')

        else {
            returnval = true
        }

    }

    if (returnval == false) input.focus()
    return returnval
}


function ExpandCollapseStoryBlock(objLink) {
    var myObj = document.getElementById("storyblock")
    //var objImg = document.getElementById("storyimg")
    if (myObj != null) {
        if (myObj.className == "hidestory") {
            myObj.className = "showstory";
            //objImg.src = "/images/iconexparrow.png";
            objLink.innerHTML = "hide story"
        }
        else {
            myObj.className = "hidestory";
            //objImg.src = "/images/iconcolarrow.png";
            objLink.innerHTML = "show story"
        }
    }
}

/* Client-side access to querystring name=value pairs
Version 1.3
28 May 2008
	
License (Simplified BSD):
http://adamv.com/dev/javascript/qslicense.txt
*/
function Querystring(qs) { // optionally pass a querystring to parse
    this.params = {};

    if (qs == null) qs = location.search.substring(1, location.search.length);
    if (qs.length == 0) return;

    // Turn <plus> back to <space>
    // See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
    qs = qs.replace(/\+/g, ' ');
    var args = qs.split('&'); // parse out name/value pairs separated via &

    // split out each name=value pair
    for (var i = 0; i < args.length; i++) {
        var pair = args[i].split('=');
        var name = decodeURIComponent(pair[0]);

        var value = (pair.length == 2)
			? decodeURIComponent(pair[1])
			: name;

        this.params[name] = value;
    }
}

Querystring.prototype.get = function(key, default_) {
    var value = this.params[key];
    return (value != null) ? value : default_;
}

Querystring.prototype.contains = function(key) {
    var value = this.params[key];
    return (value != null);
}

//get current telerik window
function GetRadWindow() {
    var oWindow = null;
    if (window.radWindow)
        oWindow = window.radWindow;
    else if (window.frameElement.radWindow)
        oWindow = window.frameElement.radWindow;
    return oWindow;
}

//get all elements by classname
document.getElementsByClassName = function(cl) {
    var retnode = [];
    var myclass = new RegExp('\\b' + cl + '\\b');
    var elem = this.getElementsByTagName('*');
    for (var i = 0; i < elem.length; i++) {
        var classes = elem[i].className;
        if (myclass.test(classes)) retnode.push(elem[i]);
    }
    return retnode;
};

function OpenFreeTrial() {
    var window = radopen("/public/freetrial.aspx", "RadWindow_FreeTrial");
    window.setSize(230, 650);
}

function OpenWeeklyBulletin() {
    var window = radopen("/public/weeklybulletin.aspx", "RadWindow_WeeklyBulletin");
    window.setSize(230, 650);
}

function UpdateSettings() {
    var window = radopen("/web/usersettings.aspx");
    window.setSize(400, 230);
}

function CloseWindow() {
    var window = GetRadWindow();

    window.close();
}