﻿String.prototype.Trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

function getAllFrames(parent){
    var frames=[];
    for (var i=0;i<parent.window.frames.length;i++){
        frames.push(parent.window.frames[i]);
        if (parent.window.frames[i].frames.length){
            var subframes=getAllFrames(parent.window.frames[i])
            for (var j=0;j<subframes.length;j++){
                frames.push(subframes[j])
            }
        }
    }
    return frames;
}

function loadContent(url,divName){
    if (divName==null) {divName='ContentFrame';}
    var frames = getAllFrames(top);
    var got = false;
    for (var i=0;i<frames.length;i++){
        if (frames[i].name == divName){
            frames[i].location.href=url;
            got = true;
            break
        }
        /*
        else if (frames[i].document.frames.length){
            var jFrames = frames[i].document.frames;
            for (var j=0;j<jFrames.length;j++){
                // the later part is for phone images menu to work
                if (!(jFrames[j].name == divName || jFrames[j].frameElement.getAttribute('id') == divName )){continue}
                got = jFrames[j]
                break
            }
            if (got){
                got.location.href= url;
            }
        }
        */
    }
    if (!got){alert('missed')};
}
function loading(paneId){
    if (!paneId) paneId='Content';
    dijit.byId(paneId).setContent('loading..........');
}
function submitFormToPaneById(fId,paneId){
    var f = document.getElementById(fId);
    submitFormToPane(f,paneId);
}
function submitFormToPane(f,paneId){
    if (!paneId) paneId='Content';    
    dojo.io.bind({
        encoding:'utf-8',
        url:f.action,
        load: function (type,data,event){
            if (data.indexOf('Traceback:')>=0){
                return alert('Traceback:\n'+data);
            }
            try{                
                dijit.byId(paneId).setContent(data);
            }
            catch (e){
                alert('JS Error:\n'+e.message);
                document.getElementById(paneId).innerHTML=data;
            }
        },
        error: function (type,data){
            alert('Error:\n'+data.message);
        },
        formNode:f
        }
    )
    loading(paneId);
    return false;
}
function invertCheckbox(widgetName){
    var widgets = document.getElementsByName(widgetName);
    for (var i=0;i<widgets.length;i++){
        var w = widgets[i];
        if ( w.checked ) {w.checked = false;}
        else {w.checked = true}
    }
}
function attachEvent(obj,eventName,func){
    var isIE= document.all;
    if (isIE){
        obj.attachEvent(eventName,func);
    }
    else{
        eventNames={'onclick':'click'}
        obj.addEventListener(eventNames[eventNames],func,false);
    }
}
document.getElementsByClassName = function(cl) {
    var retnode = [];
    var myclass = new RegExp('\\b'+cl+'\\b');
    var elem = this.getElementsByTagName('*');
    for (var i = 0; i < elem.length; i++) {
        var classes = elem[i].className;
        if (myclass.test(classes)) retnode.push(elem[i]);
        }
    return retnode;
}; 

/* called by every index.html in sub-folders, such as about/index.html */
function init(){
    // do nothing
}
