﻿Type.registerNamespace("Common");

var CurrentShortDatePattern = 'dd/MM/yyyy'; // default

Type.registerNamespace("Common");
var ietruebody;
var workSpaceHeight = 0;
var workSpaceHeightPx = 0;

if (document.compatMode && document.compatMode != "BackCompat") {

    ietruebody = document.documentElement;
}
else {
    ietruebody = document.body;
}

document.onmousemove = CaptureMousePosition;

var xMousePos = 0; // Horizontal position of the mouse on the screen
var yMousePos = 0; // Vertical position of the mouse on the screen
var xMousePosMax = 0; // Width of the page
var yMousePosMax = 0; // Height of the page

//--------------------------------------------------------------------------------------------------
// Capture the mouse position on the page
// Parameters: event - window event
//--------------------------------------------------------------------------------------------------
function CaptureMousePosition(event) {
    if (event == null) event = window.event;

    if ('undefined' != typeof event.pageX) //FF
    {
        xMousePos = event.pageX;
        yMousePos = event.pageY;
        xMousePosMax = ietruebody.clientWidth;
        yMousePosMax = ietruebody.clientHeight;
    }
    else {	//IE
        xMousePos = event.clientX + ietruebody.scrollLeft;
        yMousePos = event.clientY + ietruebody.scrollTop;
        xMousePosMax = ietruebody.clientWidth + ietruebody.scrollLeft;
        yMousePosMax = ietruebody.clientHeight - ietruebody.scrollTop;
    }
}

// find the object by tag name and attribute. Exemple: getElementsByAttribute('input', 'type', 'checkbox');
function getElementsByAttribute(tag, attribute) {
    var elements1 = document.getElementsByTagName(tag);
    var elements2 = new Array();
    if (arguments.length > 2) {
        var arg3 = arguments[2];
    }
    for (var i = 0; i < elements1.length; i++) {
        if ((elements1[i].getAttribute(attribute) != null
	         && (typeof (arg3) == "undefined"))
		    || (typeof (arg3) != null
			    && elements1[i].getAttribute(attribute) != null
			    && elements1[i].getAttribute(attribute) == arg3)) {
            elements2.push(elements1[i]);
        }
    }
    return elements2;
}

function GetElementPosition(el) {
    var parent = null;
    var pos = { x: 0, y: 0 };
    var box;

    if (el.getBoundingClientRect) {
        // IE   
        box = el.getBoundingClientRect();
        var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
        var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;

        pos.x = box.left + scrollLeft - 2;
        pos.y = box.top + scrollTop - 2;

        return pos;
    }
    else if (document.getBoxObjectFor) {
        // gecko   
        box = document.getBoxObjectFor(el);
        pos.x = box.x - 2;
        pos.y = box.y - 2;
    }
    else {
        // safari/opera   
        pos.x = el.offsetLeft;
        pos.y = el.offsetTop;
        parent = el.offsetParent;
        if (parent != el) {
            while (parent) {
                pos.x += parent.offsetLeft;
                pos.y += parent.offsetTop;
                parent = parent.offsetParent;
            }
        }
    }

    if (window.opera) {
        parent = el.offsetParent;

        while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML') {
            pos.x -= parent.scrollLeft;
            pos.y -= parent.scrollTop;
            parent = parent.offsetParent;
        }
    }
    else {
        parent = el.parentNode;
        while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML') {
            pos.x -= parent.scrollLeft;
            pos.y -= parent.scrollTop;

            parent = parent.parentNode;
        }
    }
    return pos;
}

function Sleep(milliseconds) {
    var now = new Date();
    var exitTime = now.getTime() + milliseconds;
    while (true) {
        now = new Date();
        if (now.getTime() > exitTime) return;
    }
}

function OpenBriefDetailsPopup(url, element) {
    windowManager.OpenRadWindow(url, 'BriefDetailsPopup', null);
    var oWindow = windowManager.GetWindowByName('BriefDetailsPopup');

    var pos = GetElementPosition(element);
    var X = pos.x + 100;
    var Y = pos.y - 200;

    oWindow.MoveTo(X, Y + element.offsetHeight);
}

function EnableButtons(checkedCheckBox, btnClientIds) {
    SwitchButtonsState(checkedCheckBox.checked, btnClientIds)
}

function EnableButtonsByCheckboxes(checkedCheckBox, attributeName, btnClientIds) {
    var CheckBoxIDs = getElementsByAttribute('input', 'type', 'checkbox')
    if (CheckBoxIDs != null) {
        var switchButtonsState = true;
        if (!checkedCheckBox.checked) {
            for (var i = 0; i < CheckBoxIDs.length; i++) {
                var cb = CheckBoxIDs[i];

                if ((cb.parentNode.getAttribute(attributeName) != null
                        && cb.parentNode.getAttribute(attributeName).length > 0)) {
                    if (cb != checkedCheckBox && cb.checked != checkedCheckBox.checked) {
                        switchButtonsState = false;
                        break;
                    }
                }
            }
        }
        if (switchButtonsState) {
            SwitchButtonsState(checkedCheckBox.checked, btnClientIds)
        }

    }
}
function SwitchButtonsState(enableButtons, btnClientIds) {
    //gets a string with all ids, splits the ids into an array
    //and sets them as enabled if neded   
    if (btnClientIds && btnClientIds.length > 0) {
        var buttons = btnClientIds.split(";");

        for (var i = 0; i < buttons.length; i++) {
            var button = $get(buttons[i]);

            if (button != null && typeof(button) != "undefined") {
                button.disabled = !enableButtons;
                button.className = button.disabled ? "BtnDisable" : "";
            }
        }
    }
}

function SaveCheckedItem(checkedCheckBox, btnClientIds, hidSelected, hidStoreSelectedId) {
    if (checkedCheckBox.checked) {
        $get(hidStoreSelectedId).value = $get(hidSelected).value;
    }
    else $get(hidStoreSelectedId).value = '';

    EnableButtons(checkedCheckBox, btnClientIds);
}


//global variables that can be used by ALL the function son this page.
var inputs;
var imgFalse = '../../Images/false.png';
var imgTrue = '../../Images/true.png';

//this function runs when the page is loaded, put all your other onload stuff in here too.
function init() {
    replaceChecks();
}

function replaceChecks() {

    //get all the input fields on the page
    inputs = document.getElementsByTagName('input');

    //cycle trough the input fields
    for (var i = 0; i < inputs.length; i++) {

        //check if the input is a checkbox
        if (inputs[i].getAttribute('type') == 'checkbox') {

            //create a new image
            var img = document.createElement('img');

            //check if the checkbox is checked
            if (inputs[i].checked) {
                img.src = imgTrue;
            } else {
                img.src = imgFalse;
            }

            //set image ID and onclick action
            img.id = 'checkImage' + i;
            //set image
            img.onclick = new Function('checkChange(' + i + ')');
            //place image in front of the checkbox
            inputs[i].parentNode.insertBefore(img, inputs[i]);

            //hide the checkbox
            inputs[i].style.display = 'none';
        }
    }
}

//change the checkbox status and the replacement image
function checkChange(i) {

    if (inputs[i].checked) {
        inputs[i].checked = '';
        document.getElementById('checkImage' + i).src = imgFalse;
    } else {
        inputs[i].checked = 'checked';
        document.getElementById('checkImage' + i).src = imgTrue;
    }
}

function RemoveValueFromList(list, item, delimiter)
 {
     list = delimiter + list + delimiter;
     item = delimiter + item + delimiter;

     list = list.replace(item, delimiter);

     if (list.substring(0, delimiter.length) == delimiter)
         list = list.substring(delimiter.length, list.length);

     if (list.substring(list.length - delimiter.length, list.length) == delimiter)
         list = list.substring(0, list.length - delimiter.length);
        
    return list;        
 }

 function AddValueToList(list, item, delimiter)
 {
     item = delimiter + item + delimiter;
    
    list += item;

    if (list.substring(0, delimiter.length) == delimiter)
        list = list.substring(delimiter.length, list.length);

    if (list.substring(list.length - delimiter.length, list.length) == delimiter)
        list = list.substring(0, list.length - delimiter.length);
        
    return list;        
 }

function escapeHTML(str) {
    return str.replace(/&/g, "&amp;"
	            ).replace(/"/g, "&quot;"
 	            ).replace(/</g, "&lt;"
 	            ).replace(/>/g, "&gt;");
}

function MasterPageLoaded(sender, args) {
    AdjustMainBodyToScreen();
    document.forms[0].style.visibility = "visible";
}
function AdjustMainBodyToScreen() {
    resize($get("divMainBody"));

    try {
        if (typeof(AnalyseLevel2_InitUI) == 'function') {
            setTimeout("AnalyseLevel2_InitUI();", 200);
        }
    }
    catch (e) {
    }

    try {
        if (typeof(FusionCharts_InitUI) == 'function') {
            setTimeout("FusionCharts_InitUI();", 200);
        }
    }
    catch (e) {
    }

    try {
        if (typeof (HomePage_InitUI) == 'function') {
            setTimeout("HomePage_InitUI();", 200);
        }
    }
    catch (e) {
    }
}

function OpenContactUs(url) {
    var wnd = windowManager.CreateWindow(750, 236, null);

    wnd.SetUrl(url);
    wnd.Center();
}

function OpenPrivatePolicy(url) {
    var wnd = windowManager.CreateWindow(750, 500, null);

    wnd.SetUrl(url);
    wnd.Center();
}

/*   resize the browsers height   */
function resize(obj) {
    if (obj == null) {
        obj = $get('divMainBody');
    }

    if (obj == null) {
        obj = $get('PopupLayoutDiv');
    }

    if (obj == null) {
        obj = $get('BodyLayoutDiv');
    }

    if (obj == null) return;

    var myHeight = 0, myWidth = 0;
    if (typeof (window.innerWidth) == 'number') {
        //Non-IE
        myHeight = window.innerHeight;
        myWidth = window.innerWidth;
    } else
        if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
        //IE 6+ in 'standards compliant mode'
        myHeight = document.documentElement.clientHeight;
        myWidth = document.documentElement.clientWidth;
    } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
        //IE 4 compatible
        myHeight = document.body.clientHeight;
        mywidth = document.body.clientWidth;
    }

    document.forms[0].parentNode.style.height = myHeight + 'px';
    tmpHeight = myHeight - 40;

    if (tmpHeight > 0) {
        document.forms[0].style.height = tmpHeight + 'px';
    }

    var divPageHeadings = $get('divPageHeadings');
    tmpHeight2 = myHeight - 115; 
    if(divPageHeadings)
    {
        tmpHeight2 -= divPageHeadings.offsetHeight;
    }
    if (tmpHeight2 > 0) {
        obj.style.height = tmpHeight2 + 'px';
        var tempWidth = myWidth - 14;
        if (tempWidth < 0) tempWidth = 0;
        obj.style.width = tempWidth + 'px';
    }

    var MainBodyContainerDiv = $get('MainBodyContainerDiv');
    if (MainBodyContainerDiv) MainBodyContainerDiv.style.height = obj.clientHeight - 17 + "px";
    //MainBodyContainerDiv.style.width = obj.clientWidth - 30 + "px";
    //alert('width: ' + obj.style.width);
    workSpaceHeightPx = obj.clientHeight - 21 + "px";
    workSpaceHeight = obj.clientHeight - 21;

    obj.style.overflow = 'auto';
    //alert(myHeight);

    try {
        if (typeof(resizeChild) == 'function') {
            resizeChild();
        }
    }
    catch (e) {
    }
}

Common.Utils = function(hdnIds) {
    this._hdnIds = hdnIds;
}

Common.Utils.prototype = {
    checkedItems: function(obj) {
        var hdnList = $get(this._hdnIds);
        var selectedIDs = obj.parentNode.getAttribute("objectID");
        if (obj.checked) {
            if (hdnList.value == 0) {
                hdnList.value = ";";
            }
            hdnList.value += selectedIDs + ";";
        }
        else {
            hdnList.value = hdnList.value.replace(";" + selectedIDs + ";", ';');
        }
    },

    dispose: function() {
    }
}

function NavigatorIsInternetExplorer() {
    return navigator.appName == "Microsoft Internet Explorer";
}

function NavigatorIsSafari() 
{
    return (Telerik.Web.CommonScripts.isSafari == true) || 
        (Telerik.Web.CommonScripts.isSafari2 == true) || 
        (Telerik.Web.CommonScripts.isSafari3 == true);
}

function CheckDateRangeLessThan4Days(rdpSearchPeriodFrom, rdpSearchPeriodTo, validationRuleID) {

    var dateFrom = rdpSearchPeriodFrom.GetDate();
    var dateTo = rdpSearchPeriodTo.GetDate();

    if ((dateTo - dateFrom) / (1000 * 60 * 60 * 24) > 4) {
        return 'DateRangeHasToBeLessThan5Days__inline__' + validationRuleID;
    }

    return null;
}

function ValidateFromToPeriod(rdpSearchPeriodFrom, rdpSearchPeriodTo, validationRuleID, dateFromRequired, dateToRequired)
{
    if ((dateFromRequired != null) && (dateFromRequired == true))
    {
        var strDateFrom = rdpSearchPeriodFrom.DateInput.InitialValue;
        if (strDateFrom == '')
        {
            return 'RequiredMsg__inline__' + validationRuleID;
        }
    }

    if ((dateToRequired != null) && (dateToRequired == true))
    {
        var strDateTo = rdpSearchPeriodTo.DateInput.InitialValue;
        if (strDateTo == '')
        {
            return 'RequiredMsg__inline__' + validationRuleID;
        }
    }
    
    if (validationRuleID != null)
    {
    
        var dateFrom = rdpSearchPeriodFrom.GetDate();
        var dateTo = rdpSearchPeriodTo.GetDate();

        if ((dateFrom != null) && 
            (dateTo != null) && 
            (CompareDateTimeValues(dateFrom, dateTo) > 0)) 
        {
            return 'InvalidDateRangeFromToMsg__inline__' + validationRuleID;
        }
    }
    
    return null;
}

function ValidateFromToPeriod_2(searchPeriodFrom, searchPeriodTo, validationRuleID, dateFromRequired, dateToRequired)
{
    var dateFrom = searchPeriodFrom.get_selectedDate();
    if ((dateFromRequired != null) && (dateFromRequired == true))
    {
        if (dateFrom == null)
        {
            return 'RequiredMsg__inline__' + validationRuleID;
        }
    }

    var dateTo = searchPeriodTo.get_selectedDate();
    if ((dateToRequired != null) && (dateToRequired == true))
    {
        if (dateTo == null)
        {
            return 'RequiredMsg__inline__' + validationRuleID;
        }
    }
    
    if (validationRuleID != null)
    {
        if ((dateFrom != null) && 
            (dateTo != null) && 
            (CompareDateTimeValues(dateFrom, dateTo) > 0)) 
        {
            return 'InvalidDateRangeFromToMsg__inline__' + validationRuleID;
        }
    }
    
    return null;
}

function ValidateFromToPeriod_3(rdpSearchPeriodFrom, rdpSearchPeriodTo, validationRuleID, dateFromRequired, dateToRequired) {
    if ((dateFromRequired != null) && (dateFromRequired == true)) {
        var strDateFrom = rdpSearchPeriodFrom.get_selectedDate();
        if (strDateFrom == '') {
            return 'RequiredMsg__inline__' + validationRuleID;
        }
    }

    if ((dateToRequired != null) && (dateToRequired == true)) {
        var strDateTo = rdpSearchPeriodTo.get_selectedDate();
        if (strDateTo == '') {
            return 'RequiredMsg__inline__' + validationRuleID;
        }
    }

    if (validationRuleID != null) {

        var dateFrom = rdpSearchPeriodFrom.get_selectedDate();
        var dateTo = rdpSearchPeriodTo.get_selectedDate();

        if ((dateFrom != null) &&
            (dateTo != null) &&
            (CompareDateTimeValues(dateFrom, dateTo) > 0)) {
            return 'InvalidDateRangeFromToMsg__inline__' + validationRuleID;
        }
    }

    return null;
}

function GetTelerikDatePickerObject(source, datePickerID)
{
    var datePickerObject = null;

    // the source can either the document.defaultView object or 
    // a BrowserWindow or an IframeDocument.defaultView object of the RadWindow in case of popup
    try
    {
        if (NavigatorIsInternetExplorer() == true)
        {
            datePickerObject = $find(datePickerID);
        }
        else
        {
            datePickerObject = source.$get(datePickerID).control;
        }
    }
    catch (err)
    {
        alert(err + '. Make sure the argument "source" has a "$get" method defined. File name : ' + err.fileName);
    }

    return datePickerObject;
}

function ValidateFromToDaysAndHours(txtDaysFromID, txtDaysToID, rcbHoursFrom, rcbHoursTo, ruleID)
{
    var txtDaysFrom = $get(txtDaysFromID);
    var txtDaysTo = $get(txtDaysToID);
    
    if (txtDaysFrom.value != "" && txtDaysTo.value != "")
    {
      var daysFrom = Number(txtDaysFrom.value);
      var daysTo = Number(txtDaysTo.value);
      
      var hoursFrom = Number(rcbHoursFrom.GetValue());
      var hoursTo = Number(rcbHoursTo.GetValue());

      if ( daysFrom > daysTo || (daysFrom == daysTo && hoursFrom >= hoursTo) )
      {
        return 'CopyRightPeriodEndLessThanStart__inline__' + ruleID;
      }
    }
    return null;
}

function ValidateFromToIntegerRange(txtFrom, txtTo, ruleID)
{
    var fromValue = null;
    var toValue = null;

    if (txtFrom.value != '' && isNaN(txtFrom.value) == false)
    {
        fromValue = parseInt(txtFrom.value);
    }

    if (txtTo.value != '' && isNaN(txtTo.value) == false)
    {
        toValue = parseInt(txtTo.value);
    }
    
    if (fromValue != null || toValue != null)
    {
        if (fromValue == null)
        {
            if (isNaN(txtFrom.value) == true)
            {
                return 'NumericMsg__inline__' + ruleID;
            }
            else
            {
                return 'RequiredMsg__inline__' + ruleID;
            }
        }
        else if (toValue == null)
        {
            if (isNaN(txtTo.value) == true)
            {
                return 'NumericMsg__inline__' + ruleID;
            }
            else
            {
                return 'RequiredMsg__inline__' + ruleID;
            }
        }
        if (fromValue != null && toValue != null)
        {
            if (fromValue > toValue)
            {
                return 'RangeToCanNotBeLessFromToMsg__inline__' + ruleID;
            }
        }
    }

    return null;
}

function GetDateFromInputText(rdpSearchPeriodInputId) {
    rdpSearchPeriodInput = $get(rdpSearchPeriodInputId + '_dateInput_text');

    var dateFormat = 'dd-MM-yyyy'; ;
    var ddStart = dateFormat.indexOf('dd');
    var MMStart = dateFormat.indexOf('MM');
    var yyyyStart = dateFormat.indexOf('yyyy');

    var dd = rdpSearchPeriodInput.value.substring(ddStart, ddStart + 2);
    var mm = rdpSearchPeriodInput.value.substring(MMStart, MMStart + 2);
    var yyyy = rdpSearchPeriodInput.value.substring(yyyyStart, yyyyStart + 4);

    if (rdpSearchPeriodInput.value == "") return null;
    return new Date(yyyy, mm, dd);
}

function GetTimeFromInputText(txtTimeId) {
    var txtStartTimeInput = $get(txtTimeId);
    var timeArray = txtStartTimeInput.value.split(":")

    var seconds = eval(timeArray[2]) + eval(timeArray[1]) * 60 + eval(timeArray[0]) * 3600;

    return seconds;
}

function CheckDateTimeLess(rdpSearchPeriodFrom, rdpSearchPeriodTo, txtStartTimeID, txtEndTimeID, validationRuleID) 
{
    var dateFrom = rdpSearchPeriodFrom.GetDate();
    var dateTo = rdpSearchPeriodTo.GetDate();

    if ((dateFrom != null) && (dateTo != null)) 
    {
        var timeFrom = GetTimeFromInputText(txtStartTimeID);
        var timeTo = GetTimeFromInputText(txtEndTimeID);

        dateFrom.setSeconds(dateFrom.getSeconds() + timeFrom);
        dateTo.setSeconds(dateTo.getSeconds() + timeTo);
    }

    if (dateFrom > dateTo) 
    {
        return 'DateToHasToBeGreaterThanDateFrom__inline__' + validationRuleID;
    }
    
    return null;
}

function SetSelectedOptionForDropDown(ddl, selectedValue) {
    if (ddl != null) {
        for (var i = 0; i < ddl.options.length; i++) {
            var currentOption = ddl.options[i];

            if (currentOption.value == selectedValue) {
                currentOption.selected = true;
                break;
            }
        }
    }
}

function setCaret(txtBox, pos) {
    var oField = $get(txtBox);

    // IE Support
    if (document.selection) {

        // Set focus on the element
        oField.focus();

        // Create empty selection range
        var oSel = oField.createTextRange();

        // Move selection start and end to 0 position
        oSel.moveStart('character', -oField.value.length);

        // Move selection start and end to desired position
        oSel.moveStart('character', pos);
        oSel.moveEnd('character', 0);
        oSel.select();
    }

    // Firefox support
    else if (oField.selectionStart || oField.selectionStart == '0') {
        oField.selectionStart = pos;
        oField.selectionEnd = pos;
        oField.focus();
    }
}

function fnTXTFocus(varname) {
    var objTXT = document.getElementById(varname)
    if (objTXT) {
        objTXT.style.borderColor = "#00ADEF";
        objTXT.style.background = "white";
    }
}

function fnTXTLostFocus(varname) {
    var objTXT = document.getElementById(varname)
    if (objTXT) {
        objTXT.style.background = "#EBEBEB";
        objTXT.style.borderColor = "#cdcdcd";
    }
}

function fnOnLoad() {
    var t = getElementsByAttribute('input', 'type', 'text');
    var i;

    for (i = 0; i < t.length; i++) {
        if (t[i].type == "text") {
            addEvent(t[i], 'focus', new Function("fnTXTFocus('" + t[i].id + "')"));
            addEvent(t[i], 'blur', new Function("fnTXTLostFocus('" + t[i].id + "')"));
        }
    }

    t = document.getElementsByTagName('textarea');
    for (i = 0; i < t.length; i++) {
        if (t[i].type == "textarea") {
            addEvent(t[i], 'focus', new Function("fnTXTFocus('" + t[i].id + "')"));
            addEvent(t[i], 'blur', new Function("fnTXTLostFocus('" + t[i].id + "')"));
        }
    }
}

function EncodeHtml(text) {
    //text = text.replace(eval('/&/g'), '&amp;');
    fromTo = new Array('&amp;', '&', '&AElig;', 'Ć', '&Aacute;', 'Á', '&Acirc;', 'Â', '&Agrave;', 'Ŕ', '&Aring;', 'Ĺ', '&Atilde;', 'Ă', '&Auml;', 'Ä', '&Ccedil;', 'Ç', '&ETH;', 'Đ', '&Eacute;', 'É', '&Ecirc;', 'Ę', '&Egrave;', 'Č ', '&Euml;', 'Ë', '&Iacute;', 'Í', '&Icirc;', 'Î', '&Igrave;', 'Ě', '&Iuml;', 'Ď', '&Ntilde;', 'Ń', '&Oacute;', 'Ó', '&Ocirc;', 'Ô', '&Ograve;', 'Ň', '&Oslash;', 'Ř', '&Otilde;', 'Ő', '&Ouml;', 'Ö', '&THORN; ', 'Ţ', '&Uacute;', 'Ú', '&Ucirc;', 'Ű', '&Ugrave;', 'Ů', '&Uuml;', 'Ü', '&Yacute;', 'Ý', '&aacute;', 'á', '&acirc;', 'â', '&aelig;', 'ć', '&agrave;', 'ŕ', '&aring;', 'ĺ', '&atilde;', 'ă', '&auml;', 'ä ', '&brvbar;', '¦', '&ccedil;', 'ç', '&cent;', '˘', '&copy;', '©', '&deg;', '°', '&eacute;', 'é', '&ecirc;', 'ę', '&egrave;', 'č', '&eth;', 'đ', '&euml;', 'ë', '&frac12;', '˝', '&frac14;', 'Ľ', '&frac34; ', 'ľ', '&gt;', '>', '&gt', '>', '&iacute;', 'í', '&icirc;', 'î', '&iexcl;', 'ˇ', '&igrave;', 'ě', '&iquest;', 'ż', '&iuml;', 'ď', '&laquo;', '«', '&lt;', '<', '&lt', '<', '&mdash;', '—', '&micro;', 'µ', '&middot;', '·', '&ndash;', '–', '&not;', '¬', '&ntilde;', 'ń', '&oacute;', 'ó', '&ocirc;', 'ô', '&ograve;', 'ň', '&oslash;', 'ř', '&otilde;', 'ő', '&ouml;', 'ö', '&para;', '¶', '&plusmn;', '±', '&pound;', ' Ł', '&quot;', '\"', '&raquo;', '»', '&reg;', '®', '&sect;', '§', '&sup1;', 'ą', '&sup2;', '˛', '&sup3;', 'ł', '&szlig;', 'ß', '&thorn;', 'ţ', '&tilde;', '?', '&trade;', '™', '&uacute;', 'ú', '&ucirc; ', 'ű', '&ugrave;', 'ů', '&uuml;', 'ü', '&yacute;', 'ý', '&yen;', 'Ą', '&yuml;', '˙');
    if (NeedEncodeHtml(text)) {
        for (i = 0; i < fromTo.length; i = i + 2) {
            if (text.indexOf(fromTo[i + 1]) > -1) {
                text = text.replace(eval('/' + fromTo[i + 1] + '/g'), fromTo[i])
            }
        }
    }
    return (text);
}
function NeedEncodeHtml(text) {
    var htmlSpecialElements = '&amp;|&AElig;|&Aacute;|&Acirc;|&Agrave;|&Aring;|&Atilde;|&Auml;|&Ccedil;|&ETH;|&Eacute;|&Ecirc;|&Egrave;|&Euml;|&Iacute;|&Icirc;|&Igrave;|&Iuml;|&Ntilde;|&Oacute;|&Ocirc;|&Ograve;|&Oslash;|&Otilde;|&Ouml;|&THORN;|&Uacute;|&Ucirc;|&Ugrave;|&Uuml;|&Yacute;|&aacute;|&acirc;|&aelig;|&agrave;|&aring;|&atilde;|&auml;|&brvbar;|&ccedil;|&cent;|&copy;|&deg;|&eacute;|&ecirc;|&egrave;|&eth;|&euml;|&frac12;|&frac14;|&frac34;|&gt;|&gt|&iacute;|&icirc;|&iexcl;|&igrave;|&iquest;|&iuml;|&laquo;|&lt;|&lt|&mdash;|&micro;|&middot;|&ndash;|&not;|&ntilde;|&oacute;|&ocirc;|&ograve;|&oslash;|&otilde;|&ouml;|&para;|&plusmn;|&pound;|&quot;|&raquo;|&reg;|&sect;|&sup1;|&sup2;|&sup3;|&szlig;|&thorn;|&tilde;|&trade;|&uacute;|&ucirc;|&ugrave;|&uuml;|&yacute;|&yen;|&yuml;';
    var elementsToEncode = '&|Ć|Á|Â|Ŕ|Ĺ|Ă|Ä|Ç|Đ|É|Ę|Č|Ë|Í|Î|Ě|Ď|Ń|Ó|Ô|Ň|Ř|Ő|Ö|Ţ|Ú|Ű|Ů|Ü|Ý|á|â|ć|ŕ|ĺ|ă|ä¦|ç|˘|©|°|é|ę|č|đ|ë|˝|Ľ|ľ|>|í|î|ˇ|ě|ż|ď|«|<|—|µ|·|–|¬|ń|ó|ô|ň|ř|ő|ö|¶|±|Ł|\"|»|®|§|ą|˛|ł|ß|ţ|/?|™|ú|ű|ů|ü|ý|Ą|˙';
    var htmlSpecialTags = ".*" + htmlSpecialElements + ".*";
    var needEncodeTags = ".*" + elementsToEncode + ".*";

    var reg = new RegExp(needEncodeTags);
    var regSpecialChars = new RegExp(htmlSpecialTags);

    var val = text.toLowerCase();

    var match = reg.exec(val);
    var specialsMatch = regSpecialChars.exec(val);
    return (match != null && specialsMatch == null);
}

function EncodeTextToUTF8(string){
    string = string.replace(/\r\n/g,"\n");
	var utftext = "";

	for (var n = 0; n < string.length; n++) {

		var c = string.charCodeAt(n);

		if (c < 128) {
			utftext += String.fromCharCode(c);
		}
		else if((c > 127) && (c < 2048)) {
			utftext += String.fromCharCode((c >> 6) | 192);
			utftext += String.fromCharCode((c & 63) | 128);
		}
		else {
			utftext += String.fromCharCode((c >> 12) | 224);
			utftext += String.fromCharCode(((c >> 6) & 63) | 128);
			utftext += String.fromCharCode((c & 63) | 128);
		}
	}

	return utftext;
}

function TrimToSingleSpace(text) {
    text = text.trim();
    text = text.replace(/\s+/g, " ");
    return text;
}

function OnKeyDownHandler(evt, btnGotoPage) {
    var ie = document.all ? true : false;
    //var evt = e;
    //var charCode = (evt.charCode) ? evt.charCode :((evt.which) ? evt.which : evt.keyCode);
    if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1)
        charCode = evt.which;
    else
        charCode = window.event.keyCode;
    if (charCode == 13 || charCode == 3) {
        var btnGotoPage = document.getElementById(btnGotoPage);

        if (btnGotoPage) {
            if (btnGotoPage.dispatchEvent) {
                var e = document.createEvent("MouseEvents");
                e.initEvent("click", true, true);
                btnGotoPage.dispatchEvent(e);
            }
            else {
                btnGotoPage.click();
            }
        }
        return false;
    }
    else {
        return true;
    }

}

function Trim(string) {
    return string.replace(/(^\s+)|(\s+$)/g, "");
}

/*words wrap function - need for FF (FF doesn't suport wrap-word property)*/
function WrapText(sender, args) {
    if (NavigatorIsInternetExplorer()) {
        return;
    }
    var larg_total, larg_carac, nr_chars, pos_chars;
    var caracs, display_orig;
    var tag = document.getElementsByTagName("td");

    for (var i = 0; i < tag.length; i++) {
        if (tag.item(i).className == "wrapText") {
            var spans = tag.item(i).childNodes;
            var td_width = tag.item(i).style.width;

            if (td_width.indexOf("px") != -1) {
                td_width = td_width.substring(0, td_width.length - 2);
            }
            td_width = parseInt(td_width);

            for (var j = 0; j < spans.length; j++) {
                if (spans[j].tagName == 'SPAN' || spans[j].tagName == 'A') {
                    var text = String(spans[j].innerHTML).replace(/ /g, "Ø"); ;
                    spans[j].innerHTML = " ";

                    display_orig = spans[j].style.display;
                    spans[j].style.display = "block";
                    larg_oficial = td_width; //spans[j].offsetWidth;
                    if (!document.all) spans[j].style.display = "table";
                    spans[j].innerHTML = text;
                    larg_total = spans[j].offsetWidth;

                    pos_chars = 0;
                    caracs = text.length;
                    text = text.replace(/Ø/g, " ")
                    larg_carac = larg_total / caracs
                    if (larg_total > larg_oficial) {
                        nr_chars = parseInt(larg_oficial / larg_carac)
                        nr_chars = nr_chars - (parseInt(nr_chars / 6));
                        spans[j].innerHTML = ""
                        while (pos_chars <= caracs) {
                            spans[j].innerHTML = spans[j].innerHTML + text.substring(pos_chars, pos_chars + nr_chars) + "<br>"
                            pos_chars = pos_chars + nr_chars;
                        }
                    } else {
                        spans[j].innerHTML = text;
                    }
                    spans[j].style.display = display_orig;

                    break;
                }
            }
        }
    }
}

/*Adjust pagination control and page buttons which are usually not placing in the same row.*/
function ReplacePageButtons(sender, args) {
    var tag = document.getElementsByTagName("td");

    for (var i = 0; i < tag.length; i++) {
        if (tag.item(i).className == "PagesCell") {
            //https://cp.compudava.com/show_bug.cgi?id=4958
            //Firefox issue. Buttons are disabled because their position is under another div.
            //document.getElementById("divPage").style.marginTop = "-32px";
            break;
        }
    }
}
//
//  replaces or adds a parameter to the specified url
//
function ReplaceFieldValueInQueryString(paramName, paramValue, url) {
    var finalUrl;

    var urlParts = url.split("?");
    if (urlParts.length == 1) {
        finalUrl = url + "?" + paramName + "=" + paramValue;
    }
    else {
        var newQueryString = "";
        var querystring = urlParts[1];
        var fields = querystring.split("&");
        var added;

        for (var i = 0; i < fields.length; i++) {
            var fieldParts = fields[i].split("=");
            if (fieldParts[0] == paramName) {
                added = true;
                newQueryString += "&" + fieldParts[0] + "=" + paramValue;
            }
            else {
                newQueryString += "&" + fields[i];
            }

        }

        if (!added)
            newQueryString += "&" + paramName + "=" + paramValue;

        newQueryString = newQueryString.substring(1, newQueryString.length);
        finalUrl = urlParts[0] + "?" + newQueryString;
    }

    return finalUrl;
}

function getSelectedElements(id) {
    var element = $get(id);

    if (element) {
        var collection = element.value.split(';');
        var result = new Array();

        for (var i = 0; i < collection.length; i++) {
            var item = collection[i];
            if (item != null && item.trim() != '') {
                result.push(item.trim());
            }
        }
        return result
    }
}

function getEcpIds(collection) {
    var result = new Array();
    for (var i = 0; i < collection.length; i++) {
        var ecpId = parseInt(collection[i].trim());
        result.push(ecpId);
    }

    return result;
}

function getSelectedOption(elementId) {
    var element = $get(elementId);
    if (element.selectedIndex != null && element.selectedIndex != -1) {
        return element.options[element.selectedIndex].text;
    }

    return null;
}

function getSelectedOptionIndex(elementId) {
    var element = $get(elementId);
    return element.selectedIndex;
}

function getInt(elementId) {
    var element = $get(elementId);
    var temp = element.value.trim().split(';');
    var values = Array();

    for (var i = 0; i < temp.length; i++) {
        var item = temp[i];
        if (item != null && item.trim() != '') {
            values.push(item.trim());
        }
    }

    if (values.length > 1 || values.length < 1)
        return 0;   
        
       
    var value = values[0].trim();

    var result = parseInt(value);

    if (result == NaN)
        return 0;

    return result;
}

function SetEcpIds(list, elementId) {

    var element = $get(elementId);
    element.value = "";

    if (list.length > 0) {

        for (var i = 0; i < list.length; i++) {
            element.value += ";" + list[i];
        }

        if (element.value.startsWith(';')) {
            element.value = element.value.substring(1);
        }          
    }
}

var splitIndex = 0;
var splitArray = new Array();

function Splits(string, text) {
    var strLength = string.length;
    var txtLength = text.length;

    if (strLength == 0 || txtLength == 0) return;

    var i = string.indexOf(text);

    if (!i && text != string.substring(0, txtLength)) return;

    if (i == -1) {
        splitArray[splitIndex++] = string;
        return;
    }

    splitArray[splitIndex++] = string.substring(0, i);

    if (i + txtLength < strLength) {
        this.Splits(string.substring(i + txtLength, strLength), text);
    }
}

function Split(string, text) {
    splitIndex = 0;
    this.Splits(string, text);
}

function IsElementVisible(element)
{
    return element.style.display != 'none';
}

function SetElementVisible(element, visible)
{
    if (visible == true)
    {
        element.style.display = '';
    }
    else
    {
        element.style.display = 'none';
    }
}

function CompareDateTimeValues(dateValue1, dateValue2)
{
    // dateValue1 & dateValue2 are of DateTime not String, so
    // compare the directly
    if (dateValue1 < dateValue2)
    {
        return -1;
    }
    else if (dateValue1 > dateValue2)
    {
        return 1;
    }
    
    return 0;
}

function PrepareCommaSeparatedValue(value)
{
    var separator = ',';
    var newVals = new Array();
    
    if ((value != null) && (value != '')) {
    
        var vals = value.trim().split(separator);
        
        for (var i = 0; i < vals.length; i++) {
        
            var newStr = vals[i].trim();
            
            if (newStr != '') {
            
                newVals.push(newStr);
            }
        }
    }
    
    return newVals.join(separator + ' ');
}

function SetRadWindowVisible(radWnd, visible)
{
    if (!radWnd.IsVisible() && NavigatorIsSafari()) 
    {
        // Please do not remove this it is a work arround for Safari Browser...
        radWnd.SetVisible(visible);
        radWnd.Center();
    }
}

function GetPopupObject(radWindow) {
    var popup = null;  
    var currentPlainList = null;
    if (NavigatorIsInternetExplorer() == true) {

        if (typeof(radWindow.IframeDocument) == 'undefined') {
            popup = radWindow._iframe.contentWindow;
        }
        else {
            popup = radWindow.IframeDocument.frames.frameElement.contentWindow;
        }
        
//		for(var i = 0; i < document.frames.length; i++)
//		{
//            try
//            {
//                // for some cases for unknown reason 
//                // document.frames[i].name throws AccessDenied exception, so
//                // put it in try catch block
//                if(document.frames[i].name == radWindow.Name)
//                {
//            	    popup = document.frames[i];
//            	    break;
//                }
//            }
//            catch (e)
//            {
//                // do nothing
//            }
//		}
    }
    else
    {
        if (radWindow.IframeDocument == null) {
            popup = radWindow._iframe.contentWindow;
        }
        else {
            popup = radWindow.IframeDocument.defaultView;
        }
    }
    
    return popup;
}

function SplitKeysAndValues(strKeysValues, keyValuePairSeparator, keyValueSeparator) 
{

    var keys = new Array();
    var values = new Array();

    if (strKeysValues != null)
    {
        keysValues = strKeysValues.trim().split(keyValuePairSeparator);

        for (var i = 0; i < keysValues.length; i++) 
        {
            var keyValueString = keysValues[i].trim();

            if ((keyValueString != '') && (keyValueString.indexOf(keyValueSeparator) != -1)) 
            {
                var keyValue = keyValueString.split(keyValueSeparator);
                var key = keyValue[0].trim();
                var value = keyValue[1].trim();

                keys.push(key);
                values.push(value);
            }
        }
    }

    return new Array(keys, values);
}

function GetIdsFromKeysValues(strKeysValues, keyValuePairSeparator, keyValueSeparator) 
{
    return SplitKeysAndValues(strKeysValues, keyValuePairSeparator, keyValueSeparator)[0];
}

function GetNamesFromKeysValues(strKeysValues, keyValuePairSeparator, keyValueSeparator) 
{
    return SplitKeysAndValues(strKeysValues, keyValuePairSeparator, keyValueSeparator)[1];
}

function GetCommaSeparatedValues(arrayWithValues) 
{
    return arrayWithValues.join(', ').trim();
}

function RemoveEndColon(str)
{
    str = str.trim();
    
    if (str.charAt(str.length - 1) == ':')
    {
        str = str.slice(0, str.length - 1).trim();
    }
    
    return str;
}

function DropDownList_SetSelectedByValue(dropDownList, value)
{
    for (var i = 0; i < dropDownList.options.length; i++)
    {
        var option = dropDownList.options[i];
        if (option.value == value.toString())
        {
            option.selected = true;
            break;
        }
    }
}

function MediaTypeEnumToString(mediaType) {

    var strMediaType = '';
    
    switch (mediaType) {
        case MediaTypeEnum.NONE :
            strMediaType = MediaTypeStringEnum.NONE;
            break;
            
        case MediaTypeEnum.PRESS :
            strMediaType = MediaTypeStringEnum.PRESS;
            break;
            
        case MediaTypeEnum.RADIO :
            strMediaType = MediaTypeStringEnum.RADIO;
            break;
            
        case MediaTypeEnum.TV :
            strMediaType = MediaTypeStringEnum.TV;
            break;
            
        case MediaTypeEnum.WEB :
            strMediaType = MediaTypeStringEnum.WEB;
            break;
            
        case MediaTypeEnum.WIRE :
            strMediaType = MediaTypeStringEnum.WIRE;
            break;
            
        case MediaTypeEnum.TELETEXT :
            strMediaType = MediaTypeStringEnum.TELETEXT;
            break;
    }
    
    return strMediaType;
}

function PlainList_Items_ToString(hashtable) {
    var strItems = new Array();
    
    var keys = hashtable.keys();
    for (var i = 0; i < keys.length; i++) {
        var id = keys[i];
        var value = hashtable.get(id);
        
        strItems.push(id + Common.PlainListSeparatorEnum.ID_VALUE + value);
    }
    
    return strItems.join(Common.PlainListSeparatorEnum.ITEMS);
}

function PlainList_Items_FromString(str) {
    var hashtable = new Hashtable();

    var strItems = str.trim().split(Common.PlainListSeparatorEnum.ITEMS);
    for (var i = 0; i < strItems.length; i++){
        var item = strItems[i].trim();
        if (item.indexOf(Common.PlainListSeparatorEnum.ID_VALUE) != -1) { // separator found
            var keyValue = item.split(Common.PlainListSeparatorEnum.ID_VALUE);
            var id = keyValue[0].trim();
            var text = keyValue[1].trim();
            hashtable.put(id, text);
        }
    }
    
    return hashtable;
}

function PlainList_Items_FromString_GetCommaSeparatedValues(str) {
    var hashtable = PlainList_Items_FromString(str);
    return hashtable.values().join(SeparatorEnum.COMMA_SPACE );
}


Common.MediaTypeEnum = {};
Common.MediaTypeEnum.NONE = 0;
Common.MediaTypeEnum.PRESS = 1;
Common.MediaTypeEnum.RADIO = 2;
Common.MediaTypeEnum.TV = 3;
Common.MediaTypeEnum.WEB = 4;
Common.MediaTypeEnum.WIRE = 6;
Common.MediaTypeEnum.TELETEXT = 8;
Common.MediaTypeEnum.OTHER = 9;
Common.MediaTypeEnum.ALL = 10;

// =======================================================================================================

Common.MediaTypeStringEnum = {};
Common.MediaTypeStringEnum.NONE = 'None';
Common.MediaTypeStringEnum.PRESS = 'Press';
Common.MediaTypeStringEnum.RADIO = 'Radio';
Common.MediaTypeStringEnum.TV = 'TV';
Common.MediaTypeStringEnum.WEB = 'Web';
Common.MediaTypeStringEnum.WIRE = 'Wire';
Common.MediaTypeStringEnum.TELETEXT = 'TeleText';

// =======================================================================================================
Common.SearchByDateTypeEnum = {}
Common.SearchByDateTypeEnum.NONE = 0;
Common.SearchByDateTypeEnum.PUBLICATION_DATE = 1;
Common.SearchByDateTypeEnum.CREATION_DATE = 2;
Common.SearchByDateTypeEnum.EXPIRING_DATE = 3;

// =======================================================================================================

Common.ExpirationSearchTypeEnum = {}
Common.ExpirationSearchTypeEnum.NONE = 0;
Common.ExpirationSearchTypeEnum.STORE = 1;
Common.ExpirationSearchTypeEnum.MEDIA_TYPE = 2;

// =======================================================================================================

Common.DateRangeSearchTypeEnum = {}
Common.DateRangeSearchTypeEnum.NONE = 0;
Common.DateRangeSearchTypeEnum.LAST_WEEK = 1;
Common.DateRangeSearchTypeEnum.LAST_MONTH = 2;
Common.DateRangeSearchTypeEnum.LAST_3_MONTHS = 3;
Common.DateRangeSearchTypeEnum.LAST_13_MONTHS = 4;

// =======================================================================================================

Common.TreeTextValuesSourceTypeEnum = {}
Common.TreeTextValuesSourceTypeEnum.TREE = 0;
Common.TreeTextValuesSourceTypeEnum.CRITERIA = 1;
Common.TreeTextValuesSourceTypeEnum.LIST = 2;

// =======================================================================================================

Common.BooleanRelationTypeEnum = {}
Common.BooleanRelationTypeEnum.NONE = 0;
Common.BooleanRelationTypeEnum.OR = 1;
Common.BooleanRelationTypeEnum.AND = 2;
Common.BooleanRelationTypeEnum.NOT = 3;

// =======================================================================================================

Common.MonitorAdvancedSearchControlTabsEnum = {}
Common.MonitorAdvancedSearchControlTabsEnum.NONE = 'None';
Common.MonitorAdvancedSearchControlTabsEnum.DATE_RANGE = 'DateRange';
Common.MonitorAdvancedSearchControlTabsEnum.TEXT_SEARCH = 'TextSearch';
Common.MonitorAdvancedSearchControlTabsEnum.COVERAGE_AREAS = 'CoverageAreas';
Common.MonitorAdvancedSearchControlTabsEnum.ORDERS_KEYWORDS = 'OrdersKeywords';
Common.MonitorAdvancedSearchControlTabsEnum.TOPICS = 'Topics';
Common.MonitorAdvancedSearchControlTabsEnum.MEDIA_TYPES = 'MediaTypes';

// =======================================================================================================

Common.SearchPopupTypeEnum = {}
Common.SearchPopupTypeEnum.NONE = 0;
Common.SearchPopupTypeEnum.SAVE_USER_PREF = 1;
Common.SearchPopupTypeEnum.SAVE_NOTIF_CONFIG =  2;
Common.SearchPopupTypeEnum.SAVE_PRESSBOOK_CRITERIA = 3;
Common.SearchPopupTypeEnum.SAVE_INTRANET_CONFIG = 4;

// =======================================================================================================

Common.MessageDisplayTypeEnum = {}
Common.MessageDisplayTypeEnum.NONE = 0;
Common.MessageDisplayTypeEnum.INLINE = 1;
Common.MessageDisplayTypeEnum.DIALOG = 2;

// =======================================================================================================

Common.MessageTypeEnum = {}
Common.MessageTypeEnum.NONE = 0;
Common.MessageTypeEnum.ERROR = 1;
Common.MessageTypeEnum.WARNING = 2;
Common.MessageTypeEnum.MESSAGE = 3;

// =======================================================================================================

Common.MessageUrlTypeEnum = {}
Common.MessageUrlTypeEnum.NONE = 0;
Common.MessageUrlTypeEnum.MESSAGE = 1;
Common.MessageUrlTypeEnum.MESSAGE_KEY = 2;
Common.MessageUrlTypeEnum.MESSAGE_KEY_WITH_ARGS = 3;

// =======================================================================================================

//♥○♦↓◘☺☻♣•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼■¤№√°
Common.TreeLookupSeparatorEnum = {};
Common.TreeLookupSeparatorEnum.ID_VALUE = '♪';
Common.TreeLookupSeparatorEnum.ORDER_KEYWORD = '♂';
Common.TreeLookupSeparatorEnum.KEYWORD_KEYWORD = '♫';
Common.TreeLookupSeparatorEnum.ITEMS = '♀';

// =======================================================================================================

Common.PlainListSeparatorEnum = {};
Common.PlainListSeparatorEnum.ID_VALUE = '♪';
Common.PlainListSeparatorEnum.ITEMS = '♀';

// =======================================================================================================

Common.SeparatorEnum = {};
Common.SeparatorEnum.COMMA = ',';
Common.SeparatorEnum.COLON = ':';
Common.SeparatorEnum.SEMICOLON = ';';
Common.SeparatorEnum.SPACE = ' ';
Common.SeparatorEnum.COMMA_SPACE = Common.SeparatorEnum.COMMA + Common.SeparatorEnum.SPACE;
Common.SeparatorEnum.COLON_SPACE = Common.SeparatorEnum.COLON + Common.SeparatorEnum.SPACE;
Common.SeparatorEnum.SEMICOLON_SPACE = Common.SeparatorEnum.SEMICOLON + Common.SeparatorEnum.SPACE;

// =======================================================================================================

var MediaTypeEnum = Common.MediaTypeEnum;
var MediaTypeStringEnum = Common.MediaTypeStringEnum;
var SearchByDateTypeEnum = Common.SearchByDateTypeEnum;
var ExpirationSearchTypeEnum = Common.ExpirationSearchTypeEnum;
var DateRangeSearchTypeEnum = Common.DateRangeSearchTypeEnum;
var TreeTextValuesSourceTypeEnum = Common.TreeTextValuesSourceTypeEnum;
var BooleanRelationTypeEnum = Common.BooleanRelationTypeEnum;
var MonitorAdvancedSearchControlTabsEnum = Common.MonitorAdvancedSearchControlTabsEnum;
var SearchPopupTypeEnum = Common.SearchPopupTypeEnum;
var MessageDisplayTypeEnum = Common.MessageDisplayTypeEnum;
var MessageTypeEnum = Common.MessageTypeEnum;
var MessageUrlTypeEnum = Common.MessageUrlTypeEnum;
var TreeLookupSeparatorEnum = Common.TreeLookupSeparatorEnum;
var SeparatorEnum = Common.SeparatorEnum;

var MEDIA_TYPE_PRESS    = 'PRESS';
var MEDIA_TYPE_TV       = 'TV';
var MEDIA_TYPE_TELETEXT = 'TELETEXT';
var MEDIA_TYPE_RADIO    = 'RADIO';
var MEDIA_TYPE_WEB      = 'WEB';
var MEDIA_TYPE_WIRE     = 'WIRE';

var MEDIA_SOURCE_TYPE_MEDIA_CATEGORY = 'MEDIACATEGORY';
var MEDIA_SOURCE_TYPE_MEDIA_NAME     = 'MEDIANAME';
var MEDIA_SOURCE_TYPE_MEDIA_SECTION  = 'MEDIASECTION';
var MEDIA_SOURCE_TYPE_MEDIA_CHANNEL  = 'MEDIACHANNEL';

Common.Utils.registerClass('Common.Utils', null, Sys.IDisposable);
if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();   