﻿var aTabs = new Array();
var isSafari = false;
var isMoz = false;
var isIE = false;
var _sUploadProgressUrl="/Site/Progress.aspx";

if (navigator.userAgent.indexOf("Safari") > 0)
{
    isSafari = true;
}
else if (navigator.product == "Gecko")
{
    isMoz = true;
}
else
{
    isIE = true;
}

function e(sElement) { return document.getElementById(sElement); }
function $(sElement) { return document.getElementById(sElement); }

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g,""); }
String.prototype.ltrim = function() { return this.replace(/^\s+/,""); }
String.prototype.rtrim = function() { return this.replace(/\s+$/,""); }
  
function addKeyListener(element, listener)
{
    if (isSafari) element.addEventListener("keyup",listener,false);
    else if (isMoz) element.addEventListener("keyup",listener,false);
    else element.attachEvent("onkeyup",listener);
}

function addBlurListener(element, listener)
{
    if (isSafari) element.addEventListener("blur",listener,false);
    else if (isMoz) element.addEventListener("blur",listener,false);
    else element.attachEvent("onblur",listener);
}


function init()
{
    var oFormItems=document.getElementsByTagName('input');
    var oDivs=document.getElementsByTagName('div');
    var oTabs;
    var i;
    var j;
    
    for(i=0;i<oFormItems.length;i++)
    {
        if(oFormItems[i].getAttribute('type')=='text' || oFormItems[i].getAttribute('type')=='password')
        {
            if(oFormItems[i].className.indexOf('noblur')>-1) continue;
            if(oFormItems[i].onfocus) oFormItems[i].basefocus = oFormItems[i].onfocus;
            oFormItems[i].onfocus=_text_onfocus;
            if(oFormItems[i].onblur) oFormItems[i].baseblur = oFormItems[i].onblur;
            oFormItems[i].onblur = _text_onblur;
        }
    }

    for(i=0;i<oFormItems.length;i++)
    {
        if(oFormItems[i].getAttribute('type')=='text' && oFormItems[i].id!="txtSearchBox")
        {
            try
            {
                oFormItems[i].focus();
            }
            catch(e)
            {
            }
            break;
        }
    }
    
    for(i=0;i<oDivs.length;i++)
    {
        if(oDivs[i].className == "tabStrip" || oDivs[i].className=='tabs')
        {
            oTabs = oDivs[i].getElementsByTagName('li');
            for(j=0;j<oTabs.length;j++)
            {
                aTabs[aTabs.length] = new Object();
                aTabs[aTabs.length-1].Tab = oTabs[j];
                aTabs[aTabs.length-1].Name = oTabs[j].getAttribute("tab");
                
                oTabs[j].getElementsByTagName("a")[0].href = '#' + aTabs[aTabs.length-1].Name;
            }
        }
        if(oDivs[i].className == "tabBody")
        {
            for(j=0;j<aTabs.length;j++)
            {
                if(aTabs[j].Name == oDivs[i].getAttribute('tab'))
                {
                    aTabs[j].Div = oDivs[i];
                }
            }
        }
    }
    
    if(aTabs.length>0)
    {
        if(window.location.hash.length > 0)
        {
            tab(window.location.hash.substring(1));
        }
        else
        {
            tab(aTabs[0].Name);
        }
    }
   
    pageLoad();
}

function tab(sName)
{
    var i;
    if(aTabs.length==0) return;
    
    for(i=0;i<aTabs.length;i++)
    {
        if(aTabs[i].Name == sName)
        {
            aTabs[i].Tab.className = "current";
            
            if(aTabs[i].Div!=null)
            {
                aTabs[i].Div.className = 'tabBodyOn';
            }
        }
        else
        {
            aTabs[i].Tab.className = "";
            if(aTabs[i].Div!=null)
            {
                aTabs[i].Div.className = 'tabBody';
            }
        }
    }
    tab_onchange(sName);
}

function tab_onchange(sName) {};

function pageLoad()
{
}

function validateForm()
{
    return true;
}

function _text_onfocus()
{
    this.oldClassName = this.className;
    this.className="inputselect";
    if(this.basefocus) this.basefocus();
}

function _text_onblur()
{
    this.className=this.oldClassName;
    if(this.baseblur) this.baseblur();
}

function selectOptionValue(sSelectId,vValue)
{
    var oSelect = document.getElementById(sSelectId);
    for(var iCount=0;iCount<oSelect.options.length;iCount++)
    {
        if(oSelect.options[iCount].value==vValue) 
        {
            oSelect.options[iCount].selected=true;
            break;
        }
    }
}

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;
}

function move(source,target)
{
    var oCategory = document.getElementById(source);
    var oSelected = document.getElementById(target);
    var oOption;
    var iCount;
    var iCategoryCount;
    var bFound=false;
    
    for(iCount=oCategory.options.length-1;iCount>=0;iCount--)
    {
        if(oCategory.options[iCount].selected)
        {
            bFound=false;
            for(iCategoryCount=0;iCategoryCount<oSelected.options.length;iCategoryCount++)
            {
                if(oSelected.options[iCategoryCount].value==oCategory.options[iCount].value)
                {
                    bFound=true;
                }
            }
            if(!bFound)
            {
                oCategory.options[iCount].selected = false;
                oOption = new Option(oCategory.options[iCount].text,oCategory.options[iCount].value);
                oSelected.options[oSelected.options.length] = oOption;
                oCategory.options[iCount] = null;
            }
        }
    }
}

function removeSelected(target)
{
    var iCategoryCount;
    var oSelected = document.getElementById(target);
    
    for(iCategoryCount=oSelected.options.length-1;iCategoryCount>=0;iCategoryCount--)
    {
        if(oSelected.options[iCategoryCount].selected)
        {
            oSelected.options[iCategoryCount]=null;
        }
    }
}

function isEmail(sInput)
{
    var bHasAt=false;
    var bHasPeriod=false;
    if(sInput.length<6) return false;
    
    for(var  i=0;i<sInput.length;i++)
    {
        if(sInput.charAt(i)=='@' && bHasAt) return false;
        if(sInput.charAt(i)=='@' && !bHasAt) bHasAt = true;
        if(sInput.charAt(i)=='.' && bHasAt) bHasPeriod = true;
    }
    
    if(bHasAt && bHasPeriod) return true;
    return false;
}

function doSearch()
{
    if(e('txtTopSearch').value.length==0) 
    {
        window.location = '/Site/Browse.aspx';
        return;
    }
    window.location = '/Site/Browse.aspx?q='+escape(e('txtTopSearch').value);   
}

function doTopSearch()
{
    if(e('txtSearchBox').value.length==0) return;
    window.location = '/Search/?q='+escape(e('txtSearchBox').value);   
}

//Ajax Stuff
function getXmlValue(oNode,sTagName)
{
    try
    {
        return oNode.getElementsByTagName(sTagName)[0].firstChild.nodeValue;
    }
    catch(e)
    {
        return "";
    }
}

function getXmlObject()
{
    var oXml;
    try 
    {
        oXml = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
      try
      {
          oXml = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e)
      {
          oXml = null;
      }
    }
    if(!oXml && typeof XMLHttpRequest!="undefined")
    {
        oXml = new XMLHttpRequest();
    }
    if(!oXml)
    {
        alert("Sorry, your browser is not supported by our system. Please use Internet Explorer 6.0+ or Mozilla 1.0");
    }
    return oXml;
}

function ajaxCall(sUrl,sRequest,fCallback)
{
    var oXml = getXmlObject();
    var sTarget = '/Ajax/AjaxHandler.aspx';
    
    if(sUrl.length>0) sTarget = sUrl;
    
    oXml.open("POST",sTarget,true);
    oXml.setRequestHeader("Method", "POST " + sTarget + " HTTP/1.1");
    oXml.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    oXml.onreadystatechange = function()
    {
        if(oXml.readyState!=4) return;
        if(fCallback) fCallback(oXml.responseText);
    }
    oXml.send(sRequest);
}

function ajaxCallObject(sUrl,sRequest,fCallback)
{
    var oXml = getXmlObject();
    var oXmlReturn;
    var sTarget = '../Ajax/AjaxHandler.aspx';
    
    if(sUrl.length>0) sTarget = sUrl;
    
    oXml.open("POST",sTarget,true);
    oXml.setRequestHeader("Method", "POST " + sTarget + " HTTP/1.1");
    oXml.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    oXml.onreadystatechange = function()
    {
        if(oXml.readyState!=4) return;
        if (typeof ActiveXObject != "undefined" && typeof GetObject != "undefined")
        {
            oXmlReturn = new ActiveXObject("Microsoft.XMLDOM");
            oXmlReturn.loadXML(oXml.responseText);
        }
        else if (typeof DOMParser != "undefined")
        {  
            var objDOMParser = new DOMParser();
            oXmlReturn = objDOMParser.parseFromString(oXml.responseText, "application/xml");
        } 

        if(fCallback) fCallback(oXmlReturn, oXml.responseText.replace('<?xml version="1.0" encoding="uft-8"?>', ""));
    }
    oXml.send(sRequest);
}

function openUploadProgress(sFormName, sButtonName )
{
    var sWindowFeatures = "height=140,width=500,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no";
    var gGuid = generateFakeGuid();
          	    
    sTemp = e(sFormName).action;
    
    if(sTemp.indexOf("UploadID") == -1)
    {
        if(sTemp.indexOf("?")>-1) sTemp+="&";
        else sTemp+="?"
        sTemp+="UploadID="+gGuid;
    }
    
    e(sFormName).action = sTemp;
    e(sButtonName).value="Please wait....";
    e(sButtonName).disabled=true;
    
    window.open("/Site/Progress.aspx?uid=" + gGuid, "Upload", sWindowFeatures);
}

function generateFakeGuid()
{
    var result, i, j;
    result = '';
    for(j=0; j<32; j++)
    {
        if( j == 8 || j == 12|| j == 16|| j == 20)
        result = result + '-';
        i = Math.floor(Math.random()*16).toString(16).toUpperCase();
        result = result + i;
    }
    return result;
}

function getAllInputsInElement(element)
{
    var sReturn="";
    var oItems;
    
    oItems = element.getElementsByTagName('input');
    
    for(var i=0;i<oItems.length;i++)
    {
        sReturn+="&"+oItems[i].getAttribute('id');
        if(oItems[i].getAttribute('type') == "checkbox")
        {
            sReturn+="="+(oItems[i].checked?"on":"");
        }
        else if(oItems[i].getAttribute('type') == "radio")
        {
            sReturn+="="+(oItems[i].checked?"on":"");
        }
        else
        {
            sReturn+="="+escape(oItems[i].value);
        }
    }
    
    oItems = element.getElementsByTagName('select');
    
    for(var i=0;i<oItems.length;i++)
    {
        sReturn+="&"+oItems[i].getAttribute('id');
        
        sReturn+="="+escape(oItems[i].options[oItems[i].selectedIndex].value);
    }

    oItems = element.getElementsByTagName('textarea');
    
    for(var i=0;i<oItems.length;i++)
    {
        sReturn+="&"+oItems[i].getAttribute('id');
        sReturn+="="+escape(oItems[i].value);
    }
    
    return sReturn;
}

function disableAllInputs(element)
{
    var sReturn="";
    var oItems;
    
    oItems = element.getElementsByTagName('input');
    
    for(var i=0;i<oItems.length;i++)
    {
        oItems[i].disabled = true;
    }
    
    oItems = element.getElementsByTagName('select');
    
    for(var i=0;i<oItems.length;i++)
    {
        oItems[i].disabled = true;
    }

    oItems = element.getElementsByTagName('textarea');
    
    for(var i=0;i<oItems.length;i++)
    {
        oItems[i].disabled = true;
    }
    
    return sReturn;
}

function enableAllInputs(element)
{
    var sReturn="";
    var oItems;
    
    oItems = element.getElementsByTagName('input');
    
    for(var i=0;i<oItems.length;i++)
    {
        oItems[i].disabled = false;
    }
    
    oItems = element.getElementsByTagName('select');
    
    for(var i=0;i<oItems.length;i++)
    {
        oItems[i].disabled = false;
    }

    oItems = element.getElementsByTagName('textarea');
    
    for(var i=0;i<oItems.length;i++)
    {
        oItems[i].disabled = false;
    }
    
    return sReturn;
}

function clearElement(element)
{
    for(var i=element.childNodes.length-1; i >= 0;i--)
    {
        element.removeChild(element.childNodes[i]);
    }
}

function show(element) { e(element).className = e(element).className.replace("hidden", ""); e(element).style.display=''; }
function hide(element) { e(element).style.display='none'; }
window.onload = init;