﻿var letters='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
var upperCaseLetters='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var numbers='1234567890';
var decimalNumbers='.'+numbers;
var postalCode='-'+numbers;
var telephone='-'+numbers;
var date='/'+numbers;
var signs=',.:;@-\'';
var mathsigns='+-=()*/';
var userName=letters+numbers+'-_@.,()[]!#$%^&*+=';
var password=letters+numbers+'-_@.,()[]!#$%^&*+=~`\'"{}|\\/<>';
var discountCode=letters+numbers+'-';
var zIndex=1;

function RefreshUpdatePanel(control, milliseconds)
{
    window.setTimeout("__doPostBack('" + control + "', '')", milliseconds);
}

function UnselectExclusiveCheckBox(control) 
{
    var e = jQuery(control);
    var parent = e.parent().parent().parent().parent();
    var isExclusive = e.parent().attr("IsExclusive");
    
    if (isExclusive == "true") {
        parent.find("input[type=checkbox][id!=" + e.attr("id") + "]").each(function() {
            this.checked = false;
        });
    }
    else {

        parent.find("[IsExclusive=true]").each(function() {
            jQuery(this).find("input[type=checkbox]").each(function() {
                this.checked = false;
            });
        });  
    }    
}

function ClickButtonOnEnter(e, updatePanelID, buttonID)
{
     var k = document.all ? parseInt(e.keyCode) : parseInt(e.which);   
                                  
     if ( k == 13 )  
        __doPostBack(updatePanelID, buttonID);            

     return true;
} 

function LimitTextEntry(e, obj, allow) 
{
     var k = document.all ? parseInt(e.keyCode) : parseInt(e.which);   
          
     switch (k)
     {
        case 0:
        case 8:
            return true;
        default:   
        
            if (allow == upperCaseLetters)
            {
                var upper = String.fromCharCode(k).toUpperCase();
                var length = obj.value.length;                
                
                if (length >= obj.maxLength)
                    return false;
                    
                if (allow.indexOf(upper) != -1)
                    obj.value += upper;
                    
                return false;
            }
            
            return (allow.indexOf(String.fromCharCode(k)) != -1);
     }
}

function ScrollToControl(controlId, offset)
{  
    var control = document.getElementById(controlId);
    var elemPosY = control.offsetTop + offset;  
    
    control = control.offsetParent;  
    
    while (control != null)
    {    
        elemPosY += control.offsetTop;    
        control = control.offsetParent;  
    }  

    window.scrollTo(0, elemPosY);
}
        
var zIndexCount = 0;

function ShowHintTip(control, tipText, breakAtCharacters)
{
    ShowTip(control, tipText, "_hint", "hintTip", breakAtCharacters, 2);
}

function ShowErrorTip(control, tipText, breakAtCharacters, sendToBack)
{
    ShowTip(control, tipText, "_error", "errorTip", breakAtCharacters, 1);
    
    var errorImageDiv = jQuery("#" + control + "Panel");    

    if (sendToBack)
        errorImageDiv.css("zIndex", -1);    
}

function ShowTip(control, tipText, prefix, cssClass, breakAtCharacters, zIndex)
{         
    var brokenText = AddLineBreaks(tipText, breakAtCharacters);
    var breaks = GetCountOf(brokenText, "<br/>");
    var element = jQuery("#" + control + prefix);    
        
    element.html(brokenText);
    jQuery("#" + control + prefix).fadeIn("slow");
    element.css("visibility", "visible");    
}

function HideErrorTip(control)
{
    HideTip(control, "_error");
}

function HideHintTip(control)
{
    HideTip(control, "_hint");
}

function HideTip(control, prefix)
{
    var element = jQuery("#" + control + prefix);    

    jQuery("#" + control + prefix).fadeOut("slow");
	
    var errorImageDiv = jQuery("#errorDiv");    
}

function AddLineBreaks(text, breakAfter)
{
    if (breakAfter == 0)
        return text;
        
    var outText = "";
    var i = 0;    
            
    for (;;)
    {
        var find = text.indexOf(" ", i + breakAfter);
        
        if (find == -1)
            break;
                        
        outText += text.substring(i, find) + "<br/>";
        i = find + 1;                       
    }
    
    outText += text.substring(i, text.length);    
    
    return outText;
}

function GetCountOf(text, find)
{
    count = 0;
    pos = text.indexOf(find);
    
    while ( pos != -1 ) 
    {
       count++;
       pos = text.indexOf(find,pos+1);
    }
    
    return count;
}

function HighlightGridRow(row)
{
    jQuery(row).addClass('gridHighlightedRow');
}

function UnhighlightGridRow(row)
{
    jQuery(row).removeClass('gridHighlightedRow');
}  
    
