﻿var _areaIDToRemoveOverCharacters;
var tabs = { "Private": "Private", "Mine": "Mine", "MyFreinds": "MyFreinds", "Recommended": "Recommended" }
var whitespace = " \t\n\r";

function RemoveOverCharactersLetters(maxLength, areaIDToRemoveOverCharacters)
{
    _areaIDToRemoveOverCharacters = areaIDToRemoveOverCharacters;
    var postContent = document.getElementById(_areaIDToRemoveOverCharacters).value;
    if (postContent.length > maxLength)
        document.getElementById(_areaIDToRemoveOverCharacters).value = postContent.substring(0, maxLength);
}



function ErrorClass(errorMessage, functionName, params, error, redirectUrl)
{
    this.ErrorMessage = errorMessage;
    this.FunctionName = functionName;
    this.Params = params;
    this.Error = error;
    this.RedirectUrl = (redirectUrl) ? redirectUrl : null;
}
function ErrorParam(name, value)
{
    this.Name = name;
    this.Value = value;
}

function errorMessage(oObj)
{
    try
    {
        var isDev = false;
        var errorMessage = "";
        if (typeof (isProd) != 'undefined' && isProd != null)
        {
            isDev = !isProd;
        }
        isDev = false;
        if (isDev)
        {
            if (!isnull(oObj) && !isnull(oObj.ErrorMessage))
            {
                errorMessage = oObj.ErrorMessage + whitespace;
            }
            else
            {
                errorMessage = "Please do print screen of this message;" + whitespace + whitespace;
            }
            if (!isnull(oObj.FunctionName) && !isnull(oObj.FunctionName))
            {
                errorMessage += "Function name: " + oObj.FunctionName + whitespace;
            }

            if (!isnull(oObj.Error))
            {
                var message = "";
                if (typeof (oObj.Error.description) != 'undefined' && !isnull(oObj.Error.description))
                {
                    message = oObj.Error.description;
                }
                else if (typeof (oObj.Error.get_message()) != 'undefined' && !isnull(oObj.Error.get_message()))
                {

                    message = oObj.Error.get_message();
                }
                if (!isnull(message))
                {
                    errorMessage += "Error message: " + message + whitespace;
                }
            }

            if (!isnull(oObj.Params) && oObj.Params.length > 0)
            {
                errorMessage += "Params:" + whitespace;
                for (i = 0; i < oObj.Params.length; i++)
                {
                    var p = oObj.Params[i];
                    if (!isnull(p))
                    {
                        errorMessage += "Name: " + p.Name + whitespace;
                        errorMessage += "Value: " + p.Value + whitespace;
                    }
                }
            }
            alert(errorMessage);
            if (oObj.RedirectUrl != null)
                window.location.href = oObj.RedirectUrl;
        }
        else
        {
            if (!isnull(oObj) && !isnull(oObj.ErrorMessage))
            {
                errorMessage = oObj.ErrorMessage + whitespace;
                alert(errorMessage);
                if (oObj.RedirectUrl != null)
                    window.location.href = oObj.RedirectUrl;

            }
            else
            {

                if (typeof (oObj) != 'undefined' && oObj != null && typeof (oObj.Error) != 'undefined' && oObj.Error != null)
                {
                    if (typeof (oObj.Error.get_statusCode()) != 'undefined' && oObj.Error.get_statusCode() > 0)
                    {
                        alert("An application error occured. Please contact our support or try again later.");
                    }
                }
            }
        }
    }
    catch (e)
    {
        alert(e.description);
    }
}

function errorMessageOnlyText(val)
{
    var errorClass = new ErrorClass(val, null, null, null);
    errorMessage(errorClass);
}
function errorMessageTextWithRedirect(val, redirectUrl)
{
    var errorClass = new ErrorClass(val, null, null, null, redirectUrl);
    errorMessage(errorClass);
}

var onStateChangedKey = "onStateChangedKey";
var _dropDownID;
var stateEvents;

function ShowHideDropDown(A)
{
    _dropDownID = A;
    if (document.getElementById)
    {
        if (getEl(A).style.display == "block")
        {
            HideDropDown();
        }
        else
        {
            ShowDropDown();
        }
    }
}
function LimitText(field, maxChars)
{
    if (field.value.length > maxChars)
    {
        event.returnValue = false;
        return false;
    }
}
function HideDropDown()
{
    if (getEl(_dropDownID))
        getEl(_dropDownID).style.display = "none";
}
function ShowDropDown()
{
    if (getEl(_dropDownID))
        getEl(_dropDownID).style.display = "block";
}
function ShowRegisterPopup(divRegisterPopup)
{
    HideAllPopups();
    window.top.document.getElementById(divRegisterPopup).style.display = "block";
}

function ShowConfirmSharedPopup(divConfirmSharedPopup)
{
    HideConfirmSharedPopup(divConfirmSharedPopup);
    window.top.document.getElementById(divConfirmSharedPopup).style.display = "block";
}

function HideConfirmSharedPopup(divConfirmSharedPopup)
{
    getEl(divConfirmSharedPopup).style.display = "none";
}
function ShowChangeEmailPopup(divChangeEmailPopup)
{
    HideAllPopups();
    getEl(divChangeEmailPopup).style.display = "block";
}

function HideChangeEmailPopup(divChangeEmailPopup)
{
    getEl(divChangeEmailPopup).style.display = "none";
}

function HideRegisterPopup(divRegisterPopup)
{
    window.top.document.getElementById(divRegisterPopup).style.display = "none";
}

function ShowLoginPopup()
{
    HideAllPopups();
    // window.top.document.getElementById("divLoginPopup").style.display = "block";
}

function HideLoginPopup()
{
    // window.top.document.getElementById("divLoginPopup").style.display = "none";
}

function HideAllPopups()
{
    HideLoginPopup();
}

function ShowResendPasswordPanel()
{
    divForgetPass.style.display = 'none';
    divPassRetrieve.style.display = 'block'
}


var BOLD_FONT_COLOR = "black";
var BOLD_BACKGROUND_COLOR = "#ccc";
var NORMAL_FONT_COLOR = "#187DB5";
var NORMAL_BACKGROUND_COLOR = "#fff";

var COLLAPSE_EXPRESSION = "&#9660;";
var TOGGLE_EXPRESSION = "&#9654;";
var LTR_TOGGLE_EXPRESSION = "&#9654;";
var RTL_TOGGLE_EXPRESSION = "&#9664;";
var COMMON_COLLAPSE_EXPRESSION = "&#9660;";

var xmlDoc = null;
function GetXMLObject(xmlData)
{
    if (navigator.appName.toLowerCase().indexOf("explorer") != -1)
    {

        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = "false";
        xmlDoc.loadXML(xmlData);

    }
    else
    {

        parser = new DOMParser();
        xmlDoc = parser.parseFromString(xmlData, "text/xml");
    }
}


function CloseMenu(containerID)
{
    if (getEl(containerID))
    {
        getEl(containerID).style.display = 'none';
    }
}


function OpenMenu(containerID)
{
    if (getEl(containerID))
    {
        getEl(containerID).style.display = 'block';
    }
}


function ManageSimpleMenu(containerID)
{
    if (getEl(containerID))
    {
        if (getEl(containerID).style.display == 'block')
        {
            getEl(containerID).style.display = 'none';
        }
        else
        {
            getEl(containerID).style.display = 'block';
        }
    }
}

function PaintIt(Obj, BackgroundColor, FontColor)
{
    //alert(Obj);
    Obj.style.backgroundColor = BackgroundColor;
    Obj.style.color = FontColor;
}

function ColorItByOver(Obj, backgroundColor, fontColor)
{
    //debugger;
    var bgColor = BOLD_BACKGROUND_COLOR;
    var fColor = BOLD_FONT_COLOR;

    if (backgroundColor)
    {
        bgColor = backgroundColor;
    }
    if (fontColor)
    {
        fColor = fontColor;
    }

    PaintIt(Obj, bgColor, fColor);
}

function ColorItByOut(Obj, cancelByOut, backgroundColor, fontColor)
{

    //debugger;
    if (!cancelByOut)
    {
        var bgColor = BOLD_BACKGROUND_COLOR;
        var fColor = BOLD_FONT_COLOR;
        if (backgroundColor)
        {
            bgColor = backgroundColor;
        }
        if (fontColor)
        {
            fColor = fontColor;
        }

    }
    else
    {
        var bgColor = NORMAL_BACKGROUND_COLOR;
        var fColor = NORMAL_FONT_COLOR;
        if (backgroundColor)
        {
            bgColor = backgroundColor;
        }
        if (fontColor)
        {
            fColor = fontColor;
        }
    }
    PaintIt(Obj, bgColor, fColor);
}

function SetDefaultText(objID, textIndex)
{
    //  alert("objID " + defaultSearchText[textIndex]);
    //debugger;
    if (objID.value == defaultSearchText[textIndex])
    {
        objID.value = "";
    }
    else
    {
        if (objID.value == "")
        {
            objID.value = defaultSearchText[textIndex];
        }
    }
}


function Authentication(userNameID, passwordID, rememebrMeID)
{

    this._userName = $get(userNameID);
    this._password = $get(passwordID);
    this._rememebrMe = $get(rememebrMeID);

    Authentication.prototype.AuthenticateUser = function(e)
    {

        UserManagement.AuthenticateUser(this._userName.value,
                                        this._password.value,
                                        this._rememebrMe.checked,
                                        this.OnAuthenticationSucceeded,
                                        null,
                                        null);
    }

    Authentication.prototype.OnAuthenticationSucceeded = function(result, response, context)
    {

        var loginFailedSpan = $get("lblLoginFailed");
        var regex = /\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/

        if (regex.test(result))
        {
            loginFailedSpan.style.display = "none";
            window.location = result;
        }
        else
            loginFailedSpan.style.display = "block";
    }
}

function TryAuthenticate(validationGroup)
{

    var validated = Page_ClientValidate(validationGroup);

    if (validated)
        Authenticate.AuthenticateUser();
}


function getEl(val)
{
    return document.getElementById(val);
}

function isEmpty(s)
{
    return ((s == null) || (s.length == 0))
}


function isWhitespace(s)
{
    var i;

    // Is s empty?
    if (isEmpty(s)) return true;

    // Search through string's characters one by one
    // until we find a non-whitespace character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);

        if (whitespace.indexOf(c) == -1) return false;
    }

    // All characters are whitespace.
    return true;
}
function isEmail(s)
{
    if (isEmpty(s))
        if (isEmail.arguments.length == 1) return defaultEmptyOK;
    else return (isEmail.arguments[1] == true);

    // is s whitespace?
    if (isWhitespace(s)) return false;

    // there must be >= 1 character before @, so we
    // start looking at character position 1 
    // (i.e. second character)
    var i = 1;
    var sLength = s.length;

    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    {
        i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    {
        i++
    }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
} //end function isEmail

function isnull(sValue)
{
    sValue = String(sValue);
    return (sValue == '' || sValue == 'null' || sValue == 'undefined');
} // end function isnull

function trim(sValue, sDefault)
{
    var trm = CStr(sValue);
    var dfl = CStr(sDefault);

    trm = trm.replace(/(^\s*)|(\s*$)/g, "");
    dfl = dfl.replace(/(^\s*)|(\s*$)/g, "");

    return trm == "" ? dfl : trm;
} // end function trim

function CInt(vValue, vDefault)
{
    var str = trim(vValue);
    var strd = trim(vDefault);

    var intg = parseInt(str, 10);
    var intd = parseInt(strd, 10);

    intd = (isNaN(intd) ? 0 : intd);

    return (isNaN(intg) ? intd : intg);
} // end function CInt	 

function isInt(vle)// +,-, 0-9
{
    vle = vle.replace(/,/gi, "");
    var isint = trim(vle);
    return (isint.match(/^[ ]*[+-]?\d+[ ]*$/)); // integer||null
} // end function isInt	

function CStr(vValue, vDefault)
{
    vDefault += "";
    if (vDefault == "undefined") vDefault = "";
    if (vDefault == "null") vDefault = "";

    vValue += "";
    if (vValue == "undefined") return vDefault;
    if (vValue == "null") return vDefault;

    return vValue;
} // end function CStr


function createCookie(name, value, days)
{
    var expires;
    if (days)
    {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toGMTString();
    }
    else expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}


function readCookie(name)
{
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++)
    {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function eraseCookie(name)
{
    createCookie(name, "", -1);
}

/* Ajax CheckEmail  start */
function CheckEmail(emailValidatorID, txtEmailID)
{
    var email = getEl(txtEmailID).value;
    if (email != null)
        UserManagement.IsEmailFree(email, Function.createDelegate(emailValidatorID, CheckEmail_Callback));
}
function CheckEmail_Callback(result, response, context)
{
    if (result == false)
        getEl(this).style.display = "inline";
    else
        getEl(this).style.display = "none";

    getEl(this).isvalid = result;
}
/* Ajax CheckEmail End */

/*Ajax General Error start */
function onError(objError, response, context)
{
    if (objError)
    {
        alert(objError.get_message() + '\r\nError: ' + objError.get_exceptionType());
    }
    else
    {
        alert('Response status code: ' + response.get_statusCode());
    }
}
/*Ajax General Error end */

function ValidateFields(customValidator, btnRegister)
{

    var validated = Page_ClientValidate("firstDetailsGroup");

    if (validated)
    {

        var validator = getEl(customValidator);
        var email = getEl(validator.controltovalidate).value;
        var delgate = Function.createDelegate(customValidator,
                                             function(result, response, context)
                                             {
                                                 if (result)
                                                 {
                                                     validator.isvalid = true;
                                                     validator.style.display = "none";
                                                     WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(btnRegister, "", true, "firstDetailsGroup", "", false, true))
                                                 }
                                                 else
                                                 {
                                                     validator.isvalid = false;
                                                     validator.style.display = "inline";
                                                 }
                                             });

        UserManagement.IsEmailFree(email, delgate);

    }
}

function CountryChanged(ddCountryID, ddState, txtCity, trStateID, callBack)
{
    var object = getEl(ddCountryID);
    if (object != null)
    {
        var selectedValue = object[object.selectedIndex].value;
        var countryID = selectedValue.split("|")[0];
        var trState = getEl(trStateID);
        getEl(txtCity).value = "";

        if (selectedValue.split("|")[1] == "False")
        {
            SaveItemState(getEl(ddCountryID), null);
            trState.style.display = "none";
            if (callBack)
                callBack(trStateID);
        }
        else
        {
            StateChanged(ddCountryID, ddState, txtCity);
            var object = { "ddState": ddState, "callBack": callBack };
            TreeItemsAgent.GetStates(countryID, "en", Function.createDelegate(object, GetStates_Callback));
            trState.style.display = "";
        }
    }
}

function StateChanged(dropDownCountryID, ddStateID, txtCity)
{

    getEl(txtCity).value = "";
    SaveItemState(getEl(dropDownCountryID), getEl(ddStateID));
}

function GetStates_Callback(result, response, context)
{

    var output = result;
    var state = this["ddState"];
    var callback = this["callBack"];

    if (output != null)
        FillStates(state, output);

    if (callback)
        callback(state);
}
function FillStates(ddStatesID, xmlData)
{
    GetXMLObject(xmlData)
    var ddStates = getEl(ddStatesID)
    var mainLevelRows = "";

    var collpaseElement = "";
    var itemName = "";
    var itemID = "";
    var itemHasChild = "";
    var collapseHolder = "";
    var xmlItemsCount = xmlDoc.getElementsByTagName(xmlCountryNodeNames[0]).length;

    if (xmlItemsCount > 0)
    {
        ddStates.length = 0;
        for (var index = 0; index < xmlItemsCount; index++)
        {
            itemName = xmlDoc.getElementsByTagName(xmlCountryNodeNames[0])[index].childNodes[0].nodeValue;
            itemID = xmlDoc.getElementsByTagName(xmlCountryNodeNames[1])[index].childNodes[0].nodeValue;
            var optionName = new Option(itemName, itemID, false);
            var optionLength = ddStates.options.length;
            ddStates.options[optionLength] = optionName;
        }
    }
}

function Validation(validatorContainer)
{

    this._validationfunction = validatorContainer["validationfunction"];
    this._validator = $get(validatorContainer["validatorID"]);
    this._errorControl = $get(validatorContainer["errorControlID"]);

    if (this._validator.controltovalidate)
        this._controlToValidate = $get(this._validator.controltovalidate);

    this._errorControl.style.display = "none";
    this._isValid = false;

    this.Evaluate = function()
    {

        var func = eval(this._validationfunction);
        var delegate = Function.createDelegate(this, func);
        var isValid = delegate();

        if (!isValid)
            this._errorControl.style.display = "inline";
        else
            this._errorControl.style.display = "none";

        this._isValid = isValid;
        return this._isValid;
    },

    this._validator.evaluationfunction = Function.createDelegate(this, this.Evaluate);
    this._validator.display = "None";
}

Validation.prototype = {
    IsValid: function()
    {

        return this._isValid;
    }
};

function CategoryValidation()
{
    return this._controlToValidate.value != this._validator.initialvalue;
}

function emailIsValid()
{
    return (typeof this._validator._isvalid == "undefined" || this._validator._isvalid);
}

function ValidatePage(btnClientID)
{

    var pageValidate = Page_ClientValidate("privateUser");

    if (phonesDynamicControlsManager.get_isUpdating())
    {
        if (!CheckPhoneNotEmpty())
        {
            if (phonesManager.get_count() > 1)
                clearEmptyPhone();

            phonesValid = true;
        }
        else
            updatePhone();
    }

    if (IsDataControlValid(true) && pageValidate && phonesValid)
        WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(btnClientID, "", true, "", "", false, true));
}

function updateStateHiddenField(ddStatesID)
{
    var states = $get(ddStatesID);
    var hiddenField = $get(updateStateHiddenField.hiddenFieldID);

    if (states[states.selectedIndex])
        hiddenField.value = states[states.selectedIndex].value;
    else
        hiddenField.value = "";

    if (typeof stateEvents != "undefined")
    {
        var handler = stateEvents.getHandler(onStateChangedKey);

        if (handler != null)
            handler(states);
    }
}

function add_onStatesDatabound(handler)
{
    stateEvents.addHandler(onStateChangedKey, handler);
}

function remove_onStatesDatabound(handler)
{
    stateEvents.removeHandler(onStateChangedKey, handler);
}

function ChangeToEditMode(pnlEditModeID, pnlViewID)
{

    var panelEdit = getEl(pnlEditModeID);
    var panelView = getEl(pnlViewID);

    if (panelEdit && panelView)
    {
        panelView.style.display = "none";
        panelEdit.style.display = "inline";
    }
    else
    {
        panelEdit.style.display = "none";
        panelView.style.display = "inline";
    }
}

function PhoneRemoval(validators, submitButtonID)
{

    var validator;
    var submitButton = getEl(submitButtonID);

    for (var i = 0; i < validators.length; i++)
    {
        validator = getEl(validators[i]);

        if (!validator)
            return;

        validator.enabled = false;
    }

    var isPageValid = Page_ClientValidate(validator.validationGroup);

    if (isPageValid)
        eval(submitButton.href);
}

function EnableAllValidators()
{
    for (var i = 0; i < Page_Validators.length; i++)
    {
        Page_Validators[i].enabled = true;
    }
}

function getElement(e, isIE)
{
    var currentElement = e.target.parentNode;
    return currentElement;
}

function getFileExtension(fileName)
{
    if (fileName.length == 0) return "";
    var dot = fileName.lastIndexOf(".");
    if (dot == -1) return "";
    var extension = fileName.substr(dot, fileName.length);
    return extension;
}
function checkFileType(fileName)
{
    var ext = getFileExtension(fileName);
    if (ext.toLowerCase() == ".jpg" || ext.toLowerCase() == ".png" || ext.toLowerCase() == ".gif" ||
     ext.toLowerCase() == ".jpeg" || ext.toLowerCase() == ".bmp") return true;
    else return false;
}
function isNumberKey(evt)
{
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;
    return true;
}


function SelectAraeByFocus(objID)
{
    if (getEl(objID))
    {
        getEl(objID).select();
    }
}
function AjaxCaptchaValidation(e)
{
    e.preventDefault();
    var challenge = Recaptcha.get_challenge();
    var userResponse = Recaptcha.get_response();
    UserManagement.AjaxCaptchaValidation("6Ld3CwUAAAAAADbtRw62ewmAsXocVID4IAC0xPPC", challenge, userResponse, Function.createDelegate(e.target.name, OnAjaxCaptchaValidationComplete));
}

function OnAjaxCaptchaValidationComplete(result, userContext, methodName)
{

    if ("false" == result.toString())
    {
        Recaptcha.reload();
    }
    captchaValidation._validator.enabled = true;
    captchaValidation._isValid = result;

    var validationGroup = captchaValidation._validator.validationGroup;

    if (Page_ClientValidate(validationGroup))
        __doPostBack(this, "");
}

function ReplaceString(expressionToReplace, inputText, newExpression)
{
    var output = inputText;
    output = output.replace(new RegExp(expressionToReplace, "gi"), newExpression);
    return output;
}


function GetMatch(inputText, pattern)
{
    var reg = new RegExp(pattern);
    return ((inputText.match(reg) != null && inputText.match(reg).length > 0) ? inputText.match(reg)[0] : null);
}

function GetMatches(inputText, pattern)
{
    //debugger;
    var reg = new RegExp(pattern);
    return inputText.match(reg);
}

function GetOutputMatches(inputText, pattern)
{
    //debugger;
    var reg = new RegExp(pattern, "gi");
    var matches = inputText.match(reg);
    var outputString = "";

    for (var j = 0; j < matches.length; j++)
    {
        outputString += matches[j];
    }
    return outputString;
}

function GetLastMatch(inputText, pattern)
{
    var reg = new RegExp(pattern, "gi");
    var lastMatch = null;
    if (inputText.match(reg) != null && inputText.match(reg).length > 0)
    {
        lastMatch = inputText.match(reg)[inputText.match(reg).length - 1];
    }
    return lastMatch;
}

var isOpened = false;
function SetIsOpen(pIsOpened)
{
    //alert(isOpened);
    isOpened = pIsOpened;
}

function CloseControlMenu(controlID)
{
    //debugger;
    //alert(isOpened);
    if (!isOpened)
    {
        if (document.getElementById(controlID))
        {
            document.getElementById(controlID).style.display = 'none';
        }
    }
}

function buildElementsContainer(elementsObject)
{
    for (var i in elementsObject)
        elementsObject[i] = $get(elementsObject[i]);

    return elementsObject;
}

function sanitizeChildNodes(childNodes)
{
    var children = [];

    for (var i = 0; i < childNodes.length; i++)
    {
        var child = childNodes[i];

        if (child.tagName && child.nodeType == 1)
            children.push(child);
    }

    return children;
}
/***************************************************************/

function SetTextByBlur(obj)
{
    var textBoxObject = document.getElementById(obj);
    if (textBoxObject)
    {
        var defaultTextField = textBoxObject.value;
        var textField = textBoxObject.value;
        document.getElementById(obj).value = textField;
    }
}

function ClearTextByFocus(obj)
{
    var textBoxObject = document.getElementById(obj);
    if (textBoxObject)
    {
        //alert(textBoxObject.value);
        var defaultTextField = textBoxObject.value;
        var textField = textBoxObject.value;
        if (defaultTextField == textField)
        {
            textBoxObject.value = "";
        }
        else
        {
            textBoxObject.value = defaultTextField;
        }

    }
}
/***************************************************************/

function checkName(sender, args)
{

    var textBox = $get(sender.controltovalidate);
    var regex = new RegExp(/\d/);

    if (textBox.value.trim() !== "" && textBox.value.trim().match(regex))
    {
        args.IsValid = false;
    }
    else
        args.IsValid = true;
}


var _ddlReasonID;
var _validatorID;
function SendReport(validatorID, ddlReasonsID, userBranchIDToReport)
{
    _ddlReasonID = ddlReasonsID;
    _validatorID = validatorID;
    if (document.getElementById(ddlReasonsID).value == "-1")
    {
        document.getElementById(validatorID).style.display = "block";
    }
    else
    {
        GeneralWS.SendReportViolationMailToAdmin(userBranchIDToReport, document.getElementById(ddlReasonsID).value, document.getElementById('userReasonTxtAreaID').value, SendReportViolationMailToAdmin_Callback);
    }
}

function CloseReport()
{
    document.getElementById('hlnkCloseWindow').style.display = "none";
    document.getElementById('lblHeaderMessage').innerHTML = thankYouForHelpingUs;
    document.getElementById('userReasonTxtAreaID').readOnly = false;
    document.getElementById('userReasonTxtAreaID').value = "";
    if (_ddlReasonID)
    {
        document.getElementById(_ddlReasonID).disabled = false;
        document.getElementById(_ddlReasonID).className = '';
    }
    if (_validatorID)
        document.getElementById(_validatorID).style.display = 'none';
    document.getElementById('reportViolationDiv').style.display = 'none';
    document.getElementById('userReasonTxtAreaID').className = '';
    document.getElementById('divButtons').style.display = 'block';
}

function SendReportViolationMailToAdmin_Callback(result, response, context)
{
    ShowReportAfterSending();
}

function ShowReportAfterSending()
{
    document.getElementById('pThankYou').className = "afterSend";
    document.getElementById('hlnkCloseWindow').style.display = "inline";
    document.getElementById('lblHeaderMessage').innerHTML = reportSuccessfullySent;
    document.getElementById('userReasonTxtAreaID').readOnly = true;
    document.getElementById('userReasonTxtAreaID').className = 'disabled';
    document.getElementById(_ddlReasonID).disabled = true;
    document.getElementById(_ddlReasonID).className = 'disabled';
    document.getElementById('divButtons').style.display = 'none';
}

function ShowReportViolationPopup()
{
    if (document.getElementById('reportViolationDiv'))
        document.getElementById('reportViolationDiv').style.display = 'block';
    return false;
}


function GetCurrentSrcElement(e)
{
    return ((document.all) ? e.srcElement : e.target);
}

function GetInnerText(objID)
{
    var textObject = "";
    var clientObject = document.getElementById(objID);
    if (clientObject)
    {
        textObject = ((document.all) ? clientObject.innerText : clientObject.textContent);
    }
    return textObject;
}

function GetInnerTextByRefObject(obj)
{
    return ((document.all) ? obj.innerText : obj.textContent);
}

function SetInnerText(obj, textToSet)
{
    if (document.all)
    {
        obj.innerText = textToSet;
    }
    else
    {
        obj.textContent = textToSet;
    }
}

function IsVariableDefined(yourVar)
{

    return (typeof (yourVar) != 'undefined')
}


Array.prototype.Contains = function(element)
{
    for (var i = 0; i < this.length; i++)
    {
        if (this[i] == element)
        {
            return true;
        }
    }
    return false;
};

function AllowedOnly1MenuToBeOpened(objClientID)
{
    var aliasName = ReplaceString("[0-9]", objClientID, "");
    var unique = GetMatch(objClientID, /\d{1,10}/);
    var tagToScan = document.getElementById(objClientID).nodeName;
    var tagsArray = document.getElementsByTagName(tagToScan);

    for (var j = 0; j < tagsArray.length; j++)
    {
        if (tagsArray[j].id)
        {
            var currentAliasName = ReplaceString("[0-9]", tagsArray[j].id, "");
            if (aliasName == currentAliasName)
            {
                if (tagsArray[j].id != objClientID)
                {
                    //if (document.getElementById(tagsArray[j].id).style.display == 'block') {
                    document.getElementById(tagsArray[j].id).style.display = 'none';
                    //}
                }
                else
                {
                    document.getElementById(tagsArray[j].id).style.display = 'block';
                }
            }
        }
    }
}

function CreateClientObject(clientID)
{
    return (document.getElementById(clientID) ? document.getElementById(clientID) : null);
}

function GetRefToHiddenFields()
{
    var inputCollection = document.getElementsByTagName('INPUT');
    var hiddenCollection = new Array();

    for (var j = 0; j < inputCollection.length; j++)
    {
        if (inputCollection[j].type.toLowerCase() == 'hidden')
        {
            hiddenCollection.push(inputCollection[j]);
        }
    }
    return hiddenCollection;
}

function FormatToSpecialUnicodeCharacters(sourceStr)
{
    var generateStr = (sourceStr.indexOf("'") != -1) ? sourceStr.replace("'", "\\u0027") : sourceStr;
    generateStr = (generateStr.indexOf('"') != -1) ? sourceStr.replace('"', "\\u0022") : generateStr;
    return generateStr;
}

function GlobalTrim(str)
{
    var trimStr = str.replace(/\s/g, "");
    return trimStr;
}

function SetDisplayAttribute(obj, attributeValue)
{
    if (obj != null)
    {
        obj.style.display = attributeValue;
    }
}

function ForceEnglishChars(e, notifierID)
{

    var isTypedEnglishChar = true;

    var currentObject = GetCurrentSrcElement(e);
    var notifierObject = CreateClientObject(notifierID);

    var key = ((window.event) ? event.keyCode : e.which);
    var typedChar = String.fromCharCode(key);

    var patternToMatch = "[A-Za-z0-9'\".,() ]";
    var reg = new RegExp(patternToMatch);

    if (!reg.test(typedChar))
    {
        isTypedEnglishChar = false;
        if (notifierObject != null)
        {
            SetDisplayAttribute(notifierObject, 'block');
        }
        if ((window.event))
        {
            e.returnValue = isTypedEnglishChar;
        }
        else
        {
            if (key > 0 && key != 8)
            {
                return isTypedEnglishChar;
            }
            else
            {
                if (notifierObject != null)
                {
                    SetDisplayAttribute(notifierObject, 'none');
                }
                return true;
            }
        }
    }
    else
    {
        if (notifierObject != null)
        {
            SetDisplayAttribute(notifierObject, 'none');
        }
        return isTypedEnglishChar;
    }
}


function CustomOuterHTML(obj)
{
    //alert("obj.innerHTML " + obj.innerHTML);
    var HTML = "<" + obj.tagName;
    for (var i = 0; i < obj.attributes.length; i++)
    {
        var attr = obj.attributes[i];
        HTML += " " + attr.name + "=\"" + attr.nodeValue.replace(/"/, "\"") + "\"";
    }
    HTML += ">";
    HTML += obj.innerHTML + "</" + obj.tagName + ">";
    return HTML;
}

function AddOption(objSelector, textOption, valueOption)
{
    var item = new Option(textOption, valueOption, false);
    var optionLength = objSelector.options.length;
    objSelector.options[optionLength] = item;
}

function RemoveOptions(objSelector)
{
    if (objSelector.length > -1)
    {
        for (var i = objSelector.length; i > -1; i--)
        {
            objSelector.remove(i);
        }
    }
}


function GeneralSaveCurrentPage(cpByPostBackClientID, currentPage)
{
    if (document.getElementById(cpByPostBackClientID))
    { document.getElementById(cpByPostBackClientID).value = currentPage; }
}


function clickButton(e, buttonid)
{
    var evt = e ? e : window.event;

    var bt = document.getElementById(buttonid);

    if (bt)
    {

        if (evt.keyCode == 13)
        {

            bt.click();

            return false;

        }
    }
}

function GetLangCode()
{
    //alert(window.location);

    var pageURL = (document.all) ? document.URLUnencoded : window.location.href;
    var langName = "en";
    var httpIndex = pageURL.indexOf("http://");

    if (httpIndex > -1)
    {
        var pageURL = pageURL.replace("http://", "")
        langName = pageURL.substring(0, pageURL.indexOf("."));
    }
    return (langName == "www") ? "en" : langName;
}



function StartLoading(loadingContainer)
{
    //debugger;
    var loader = CreateClientObject(loadingContainer);
    if (loader != null)
    {
        loader.style.display = '';
    }
}


function StopLoading(loadingContainer)
{
    var loader = CreateClientObject(loadingContainer);
    if (loader != null)
    {
        //loader.innerHTML = '';
        loader.style.display = 'none';
    }
}

var loader = null;
this.Loader = function(clientID)
{
    //debugger;
    this.clientID = clientID;

    this.GetLoader = function()
    {
        return CreateClientObject(this.clientID);
    }
    return this;
}

function InitLoader(clientID)
{
    loader = new Loader(clientID);
}

function ShowLoader()
{
    //debugger;
    if (loader != null)
    {
        var loaderObject = loader.GetLoader();
        if (loaderObject != null)
        {
            loaderObject.style.display = '';
        }
    }
}

function HideLoader()
{
    //debugger;
    if (loader != null)
    {
        var loaderObject = loader.GetLoader();
        if (loaderObject != null)
        {
            loaderObject.style.display = 'none';
        }
    }
}

function ToggleElemet(linkObj, containerID)
{
    //debugger;
    var clientContainer = CreateClientObject(containerID);
    if (clientContainer)
    {
        if (clientContainer.style.display == 'block')
        {
            SetInnerText(linkObj, "+");
            clientContainer.style.display = 'none';
        }
        else
        {
            SetInnerText(linkObj, "-");
            clientContainer.style.display = '';
        }
    }
}


