﻿/*
    Dock9
    
    @Project: Cglloyds
    @Developer: Cem Sisman - cem.sisman@dock9.co.uk
    @CreateDate: Script 20100101 
    
*/

// Dom is ready!
$(function() {
    $('input:text,input:checkbox,input:radio,select').bind('change', function () { _isDirty = true; });

    try {

        $(".datepicker").datepicker({
            showOn: "button",
            buttonImage: "/_assets/images/icons/datepicker.gif"
        , buttonImageOnly: true
        , changeMonth: true,
            changeYear: true,
            dateFormat: 'dd/mm/yy'
        });
        $(".datepicker").datepicker("option", "showAnim", "");
        //$('.f_c2 img').css('float', 'left');

    } catch (e) {
        // do nothing
    }
      
});

var _isDirty = false;

/*window.alert = function(txt) {
    radalert(txt, 420, 150);
}*/


// you can get request querystring variables with this function.
function _request(ji) { return request(ji); }

// Don't use this function, use _request() instead.
function request(ji) {
    hu = window.location.search.substring(1);
    gy = hu.split("&");
    for (i = 0; i < gy.length; i++) {
        ft = gy[i].split("=");
        if (ft[0] == ji) {
            return ft[1];
        }
    }
}



// Don't use this function use _closeCurrentWindow() instead.
function CloseCurrentWindow() { window.close(); } 

// Close window button click, should be set on onclientclick event, eg: oncliencclick="_closeCurrentWindow()" .
function _closeCurrentWindow() {
    if (_isDirty) {        
        var err = "Your changes will be lost.";
        radconfirm(err, function(args) {            
            if (args == true) {
                CloseCurrentWindow();
            }
        }, 410, 150, null, '');
    }
    else {
        CloseCurrentWindow();
    }
    
    return false;
}

// Generates random number between - and 1000, this needed to be added in the url for telerik window.open due to cache problem on <=ie7 .
function _randomNumber() { var randomnumber = Math.floor(Math.random() * 1001); return randomnumber; }



/************************************************************************************
   Telerik Window Functions 
*************************************************************************************/

// Gets telerik window
function _getRadWindow() {
    var oWindow = null;
    if (window.radWindow) oWindow = window.radWindow; //Will work in Moz in all cases, including clasic dialog
    else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow; //IE (and Moz as well)
    return oWindow;
}

// Opens new window by using telerik window component.
function _openWindow(url, windowName) {
    var oBrowserWnd = _getRadWindow().BrowserWindow;
    var r = oBrowserWnd.radopen(url, windowName);

    return false;
}


function _setGridButtons(grid, btnAdd, btnEdit, btnRemove, callback) {
    // check if there is a selected row on the grid. if so enable edit and delete button accordingly.

    var masterTable = grid.get_masterTableView();    
    var ctrlID = grid.get_id();
    
    var name = $("#" + ctrlID).attr('title');
    var selectedRows = masterTable.get_selectedItems();
    
    var objectID = 0;

    if (selectedRows != null && selectedRows.length==1) {
        var row = selectedRows[0];
        dId = masterTable.getCellByColumnUniqueName(row, "ID");
        objectID = dId.innerHTML;
    } else { 
        // 
    }

    var args = { objectID: objectID, objectName: name, rnd: _randomNumber() };
    callback(args);

}





/* 
    TELERIK RadCombobox validation issue fix.
*/

function validateCombo(source, args) {

    args.IsValid = false;
    
    var combo = $find(source.controltovalidate);    
    var text = combo.get_text();   
      
    if (text.length < 1) {
        args.IsValid = false;
    }
    
    else {
        var node = combo.findItemByText(text);
        if (node) {
            var value = node.get_value();
            if (value.length > 0 && value % 2 == 0) {
                args.IsValid = true;
            } else {args.IsValid = true;}
        }
        else {
            args.IsValid = false;
        }
    }
}

function _textArea_KeyUp(obj, max, div) {
    var len = _getLFCRDiff(obj.value);

    if (len > max) {
        obj.value = obj.value.substr(0, max);
        len = max;
    }

    if (div)
        div.html((max - len) + ' character(s) left.');
}

function _textArea_KeyDown(obj, max, e) {
    var ob = e || event;
    var keyCode = ob.keyCode;
    var len = _getLFCRDiff(obj.value);
    //alert(keyCode);
    var hasSelection = document.selection ? _getLFCRDiff(document.selection.createRange().text) > 0 : this.selectionStart != this.selectionEnd;

    var ret = !(
                 len >= max
                 && (keyCode > 47 || keyCode == 32 || keyCode == 0 || keyCode == 13)
                 && !ob.ctrlKey
                 && !ob.altKey
                 && !hasSelection
                );

    return ret;
}

function _getLFCRDiff(textstr)
{
    var countdiff = 0;
    for (i=1;i < textstr.length;i++){
        var a = textstr.charCodeAt(i);
        if (a == 10) {
            countdiff++;
        }
        if (a == 13) {
            countdiff--;
        }
    }
    return textstr.length + countdiff;
}

function _ensureInFrameset() {
//    var parentFramesetLocation = "http://localhost/framereloader/frame1.asp";
//    var reg = new RegExp(parentFramesetLocation, "i");
//    if ((parent.location.href + "").search(reg) < 0)
    //        window.open(parentFramesetLocation, "_parent");


}

$(function() {
    var url = "/back_office/home/web-clients/Default.aspx";
    var reg = new RegExp(url,"i");
    var parentLocation = parent.location.href;
    if((parentLocation + "").search(reg) < 0){
        //window.location.href= "/back_office/home/web-clients/default.aspx";
    }
});



function _FunctionShowHide(obj, name, trueValue) {
    var show = 'none';

    var values = trueValue.split('|');
    for (var i = 0; i < values.length; i++) {
        if (obj.value == values[i]) {
            show = '';
            break;
        }
    }

    if (show == 'none') {
        $('#ctt' + name).hide('fast');
        $('#ctc' + name).hide('fast');
    }
    else {
        $('#ctt' + name).show('fast');
        $('#ctc' + name).show('fast');
    }
}

function _ListIndexChanged(obj) {
    var iValue = 0 + obj.value;

    if (obj.value == '')
        iValue = -1;

    var objJQ = $('#' + obj.id);
    var objButtonRemove = objJQ.parent('dd').children('div').children('[id*=Remove]');

    if (iValue >= 0)
        objButtonRemove.removeAttr('disabled');
    else
        objButtonRemove.attr('disabled', 'disabled');
}

function _FunctionRequiredCustom(source, args) {
    args.IsValid = !$('#' + source.id).parent().is(':visible') || args.Value != '';
}


