﻿//////////////////////////////////
//  Global Varaibles
//
//////////////////////////////////
var exts = new Array("jpg","gif","bmp","tif","png");

/////////////////////////////////
// Key codes
/////////////////////////////////
var BACK_SPACE_KEY = 8;
var SPACE_BAR_KEY = 32;
var TAB_KEY = 9;
var ENTER_KEY = 13;
var SHIFT_KEY = 16;
var ESCAPE_KEY = 27;
var LEFT_ARROW_KEY = 37;
var RIGHT_ARROW_KEY = 39;
var DOWN_ARROW_KEY = 40;
var DELETE_KEY = 46;
var NUMBER_KEYS = [48,49,50,51,52,53,54,55,56, 57];
var NUMBER_PAD_KEYS = [96,97,98,99,100,101,102,103,104,105];
var DECIMAL_POINT_KEY = 110;
var SEMICOLON_KEY = 186;
var OPEN_BRACKET_KEY = 219;
var CLOSE_BRACKET_KEY = 221;
var SUBSTRACT_KEY = 109;

function $(id) { return document.getElementById(id); }
function $get(id) { return document.getElementById(id); }

//////////////////////////////////
// Function for getting query
// string from URL
//////////////////////////////////
function getQueryString(key)
{
    var sQueryString = window.location.search.substr(1);
    var aPairs = sQueryString.split("&");
    var aItem;
    var x = 0;
    while (x < aPairs.length) {
        aItem = aPairs[x].split("=");

        if (aItem[0].toLowerCase() == key.toLowerCase()) {
            sQueryStringValue = aItem[1];
            return aItem[1];
        }
            x++;
    }
    return -1;
}

/////////////////////////////////
// Get cookie function from W3C
/////////////////////////////////
function getCookie(c_name)
{
    if (document.cookie.length>0)
    {
        c_start=document.cookie.indexOf(c_name + "=")
        if (c_start!=-1)
        { 
            c_start=c_start + c_name.length+1 
            c_end=document.cookie.indexOf(";",c_start)
            if (c_end==-1) c_end=document.cookie.length
                return unescape(document.cookie.substring(c_start,c_end))
        } 
    }
    return ""
} 

// Create cookie
function createCookie(name,value,mins) {
	if (mins) {
		var date = new Date();
		date.setTime(date.getTime()+(mins*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var 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 "";
}
function eraseCookie(name) {
	createCookie(name,"",-1);
}



function number_format(dNumber, iDecimals) 
{
    var dVal;
    dNumber = parseFloat(dNumber);
    dNumber.toFixed ? dVal = dNumber.toFixed(iDecimals) : dVal = Math.round(dNumber * Math.pow(10, iDecimals)) / Math.pow(10, iDecimals);
    return dVal;
}

function sizeFormat(s)
{
    s = parseInt(s);
    if(s>1024*1024)
    {
        s = s/(1024*1024); 
        return number_format(s, 2) + "M";
    }
    else if(s>1024)
    {
        return number_format(s/1024, 2) + "K";
    }
    else
    {
        return s + "Bytes";
    }
}

function getEvent(event)
{
    var oEvent;
    window.event ? oEvent = window.event : oEvent = event;
    return oEvent;
}

function getFileName(path)
{
    var i=0;
    while( path.indexOf("\\", i) != -1 )
    {
        i = path.indexOf("\\", i);
        i++;
    }
    return path.substring(i, (path.length));
}

function getExtention(fileName)
{
    var str = fileName;
    var i = fileName.indexOf(".");
    
    if(i==-1)
        return "";
    
    while(i != -1)
    {
        var len = str.length;
        str = str.substring(i+1, len);
        i = str.indexOf(".");
    }
    return str.toLowerCase()
}

function IsPicFormat(fileExt)
{
    var result = false;
    fileExt = fileExt.toLowerCase();
    for(i=0;i<exts.length;i++)
    {
        if(fileExt == exts[i])
            result = true;
    }
    return result;
}

function getBrowserType() 
{
    var iBrowser;
     // 0 - IE 5+, 1 - Netscape/Firefox, -1 - old
    if (document.getElementById) 
    {
        navigator.appName == 'Netscape' && parseInt(navigator.appVersion) >= 5 ? iBrowser = 1 : iBrowser = 0;
    } else
    {
        iBrowser = -1;
    }
    return iBrowser;
}

function mod(divisee,base) {
	return Math.round(divisee - (Math.floor(divisee/base)*base));
}

// Check Max Input Characters 
function checkMaxLen(event)
{
    var MaxLength = 200; // Change number to your max length.
    var keyList = " 8 46 37 38 39 40 13 9 16 20 "; 
    var control;
    
    var oEvent = event || window.event;
    var eKeyCode;
    if(oEvent.keycode)
        eKeyCode = oEvent.keyCode;
    else
        eKeyCode = oEvent.which;
        
    if(oEvent.target)
        control = oEvent.target;
    else
        control = oEvent.srcElement;

    eKeyCode = " " + eKeyCode + " ";
    
    if(keyList.indexOf(eKeyCode) == -1)
    {
        if (control.value.length >= MaxLength) 
        {
            control.value = control.value.substring(0,MaxLength);
        } 
    }
}

///////////////////////////////////////////////////////////////////////
// Trim all whitespace from a string
// Left trim + Right trim
///////////////////////////////////////////////////////////////////////
function trimAll(sString) 
{
    while (sString.substring(0,1) == ' ')
    {
        sString = sString.substring(1, sString.length);
    }
    while (sString.substring(sString.length-1, sString.length) == ' ')
    {
        sString = sString.substring(0,sString.length-1);
    }
    return sString;
}

function getElementText(element)
{
    if(element.innerText)
        return element.innerText;
    else if(element.textContent)
        return element.textContent;
    else
        return "";
}

function setElementText(element, value)
{
    if(element.innerText)
        element.innerText = value;
    else if(element.textContent)
        element.textContent = value;

}

//////////////////////////////////////////////////////
// Wrapping long no space text by inserting <wbr/> tag
// Return: HTML wrapped text
//////////////////////////////////////////////////////
function wrap_long_no_space_text(message) {
    var re = new RegExp("[^ ]{60,}", "gi");
    var rg = new RegExp("(&.{2,4};|<[^>]+>|href=\"?[^ ]+\"?)", "gi");
    var replace_text;
    var current_text = message;
    
    // Message is long enough and match the pattern
    if( message.length > 100 && message.match(re) ){   
        // Loop through all matches      
        while( (m = re.exec(message) ) != null ) {
            replace_text = '';
            var long_text = message.substr(m.index, m[0].length);            
                      
            // Skip HTML symbols and tags
            if(long_text.match(rg)) {
                var rg1 = new RegExp("<?[^>]+>([^<]+)</[^>]+>", "gi");
                var m2 = rg1.exec(long_text);
                if(m2 != null){                
                    wrap_long_no_space_text(m2[1]);
                }
            }
            else {
                var rg1 = new RegExp("([^ ]{20})", "gi");
                replace_text = long_text.replace(rg1, "$1<wbr/>");                
            }            
            
            if(replace_text != ''){
                current_text = current_text.replace(long_text, replace_text);    
            }
        }                    
        return current_text;              
    }
    else return message;
}
