﻿// this is common js

function ValidateDropDownList(sender, args)
{
     var currentDropDownList = document.getElementById(sender.controltovalidate);
    
    if (currentDropDownList.value === "0")
    {
        args.IsValid = false
    }
    else
    {
        args.IsValid = true;
    }
    
    return false;
}

//get a reference to any element, compatible with ie, ff, opera, safari and aol browser
function getObj(name)
{
    if(document.all){this.obj=document.all[name];return this.obj;}
    else if(document.getElementById){this.obj=document.getElementById(name);return this.obj;}
    else if(document.layers){this.obj=document.layers[name];return this.obj;}
}

//ajax calls that ran async and need a dummy callback
function buffer(r){return;}

//disable all controls in a page while waiting for an ajax response
function disableAll(disable)
{
    try
    {
        var buts=document.getElementsByTagName("input");
        for(var i=0;i<buts.length;i++)
        {
            buts[i].disabled=disable;
        }
        var sels=document.getElementsByTagName("select");
        for(var i=0;i<sels.length;i++)
        {
            sels[i].disabled=disable;
        }
        var txt=document.getElementsByTagName("textarea");
        for(var i=0;i<txt.length; i++)
        {
            txt[i].disabled=disable;
        }
    }
    catch(e){return;}
}

//checks if all images on the page loaded completely
function allImagesAreLoaded()
{
    try
    {
        var imgs=document.getElementsByTagName("img");
        for(var i=0;i<imgs.length;i++)
        {
            if(!imgs[i].complete)
            {return false;}
        }
        return true;
    }
    catch(e){return false;}
}

//change the cursor to wait
function waitCursor(b){if(b){document.body.style.cursor='wait';}else{document.body.style.cursor='default';}}

//spawn a new window and set focus to it
function spawnWindow(url){var window_settings = "";var popWin = window.open(url, "New", window_settings);popWin.focus();}


//find the postion of an html element
function findPosX(obj)
{
    var curleft = 0;
    try
    {
        if(obj.offsetParent)
            while(1) 
            {
              curleft += obj.offsetLeft;
              if(!obj.offsetParent)
                break;
              obj = obj.offsetParent;
            }
        else if(obj.x)
            curleft += obj.x;
    }
    catch(e){}
    return curleft;
}

function findPosY(obj)
{
    var curtop = 0;
    try
    {
        if(obj.offsetParent)
            while(1)
            {
              curtop += obj.offsetTop;
              if(!obj.offsetParent)
                break;
              obj = obj.offsetParent;
            }
        else if(obj.y)
            curtop += obj.y;        
    }
    catch(e){}
    return curtop;
}

/// <summary>
/// Method adds 'http://' to object.value if it does not exist.  Also removes extra http:// if it appears twice
/// </summary>
function adjustUrl(e)
{
    e.value = Trim(e.value);
    var valueLower = e.value.toLowerCase();
    if (valueLower.substring(0, 7) != "http://")
    {
        e.value = "http://" + e.value;
    }
    else if (valueLower.substring(0, 14) == "http://http://")
    {
        e.value = e.value.substring(7);
    }
    return false;
}

// EmailAddress moved to SpkJs.Validation.Text
function EmailAddress(str){try{return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);}catch(e){return false;}}
// IsNumeric moved to SpkJs.Validation.Text
function IsNumeric(sText){var ValidChars = "0123456789";var IsNumber=true;var Char;for (i = 0; i < sText.length && IsNumber == true; i++){Char = sText.charAt(i);if (ValidChars.indexOf(Char) == -1){IsNumber = false;}}return IsNumber;}
// IsDate moved to SpkJs.Validation.Text
function IsDate(dateStr){var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;var matchArray = dateStr.match(datePat);if (matchArray == null) {return false;}month = matchArray[1];day = matchArray[3];year = matchArray[5];if (month < 1 || month > 12) { return false; }if (day < 1 || day > 31) { return false;}if ((month==4 || month==6 || month==9 || month==11) && day==31) {return false;}if (month == 2) {var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));if (day > 29 || (day==29 && !isleap)) {return false;}}return true;}
// HasSpaces moved to SpkJs.Validation.Text
function HasSpaces(sText){var ValidChars=" ";var IsSpaceChar=false;var Char;var Check;for(i=0;i<sText.length && IsSpaceChar==false;i++){Char=sText.charAt(i).toString();Check=Trim(Char);if(Check==""){IsSpaceChar=true;}}return IsSpaceChar;}
// IsAlphaNum moved to SpkJs.Validation.Text
function IsAlphaNum(sText){var ValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";var IsValid=true;var Char;for (i = 0; i < sText.length && IsValid==true; i++){Char = sText.charAt(i);if (ValidChars.indexOf(Char) == -1){IsValid=false;}}return IsValid;}

function Trim(STRING){STRING = LTrim(STRING);return RTrim(STRING);}

function RTrim(STRING){while(STRING.charAt((STRING.length -1))==" "){STRING = STRING.substring(0,STRING.length-1);}return STRING;}

function LTrim(STRING){while(STRING.charAt(0)==" "){STRING = STRING.replace(STRING.charAt(0),"");}return STRING;}

function IsFriendlyUrl(sText){var ValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.=/?&-";var IsValid=true;var Char;for (i = 0; i < sText.length && IsValid==true; i++){Char = sText.charAt(i);if (ValidChars.indexOf(Char) == -1){IsValid=false;}}return IsValid;}

function cancelClick(event)
{
	event = getevent(event);
	if(window.event) {
		event.returnValue = false;
	} else if(event) {
		event.preventDefault();
		event.stopPropagation();
	}
    return false;
}
function getevent(e) {
	if(window.event) { return window.event; }
	if(e) { return e; }
	return null;
}