/*
    Author: Joe Tan
    Email: jtan@silaspartners.com

*/    
var SilasPage = function() {
    function SilasPlugins(e){
    }
    var self = SilasPlugins
    
    function addOnLoad (func) {
        this.plugins[this.plugins.length] = func
    }
    function addOnLoadFinish (func) {
        this.pluginsFinish[this.pluginsFinish.length] = func
    }
    
    function initialize() {
        for (var i=0;i<this.plugins.length;i++) {
            this.plugins[i]()
        }
        for (var i=0;i<this.pluginsFinish.length;i++) {
            this.pluginsFinish[i]()
        }
    }
    function printPage (url) {
        var w = window.open(url, '_blank', 'width=730,height=550,scrollbars,resizable,menubar');
        if (w) {
            w.focus()
        }
        return false
    }
    function formatPrintPage() {
        var screenDefault = getElem('style-screen-default')
        var screenAll = getElem('style-screen-all')
        var printDefault = getElem('style-print')
        screenDefault.disabled = true
        screenAll.disabled = true
        printDefault.media = 'all'
        var printdiv = document.createElement('div')
        printdiv.className='print-button'
        printdiv.innerHTML = '<form method="get" action="#" onsubmit="return false;"><input type="button" value="print this page" onclick="window.print()" /><input type="button" value="cancel" onclick="SilasPage.closePrintPage()" /></form>'
        var main = getElem('main_feature')
        main.appendChild(printdiv)
    }

    function closePrintPage() {
        if (window.opener) {
            window.close()
        } else {
            var screenDefault = getElem('style-screen-default')
            var screenAll = getElem('style-screen-all')
            var printDefault = getElem('style-print')
            
            screenDefault.disabled = false
            screenAll.disabled = false
            printDefault.media = 'print'
            window.location='#top'
        }
    }
    function emailPage(id, target, url) {
        if (!id)  id  = '664219FC1F3F43A8A6E3AB0A64A4AC57'
        if (!url) url = '/site/c.'+KinteraVars.c+'/b.'+KinteraVars.b+'/email2friend.asp?email_url=' + escape(window.location)
        var w = window.open(url, '_blank', 'width=700,height=525,resizable')
        if (w) {
            w.focus()
        }
        if (!url) return false
    }
    
    self.addOnLoad = addOnLoad
    self.addOnLoadFinish = addOnLoadFinish
    self.initialize = initialize
    self.printPage = printPage
    self.formatPrintPage = formatPrintPage
    self.closePrintPage = closePrintPage
    self.emailPage = emailPage
    
    self.plugins = Array()
    self.pluginsFinish = Array()
    return self;
}();

function initializeBookmark() {
    var location = window.location + ""
    if (location.indexOf('#') != -1)
        gotoBookmark(location.substring(location.indexOf('#')+1))
}

function initializePromos() {
    var promos = getElem('silas-promos');
    if (promos) {
        var nav = getElem('silas_mainNav');
        var uls = nav.getElementsByTagName('ul');
        var str = ""
        var m = 0
        for (var i=0;i<uls.length;i++) {
            if (uls[i].offsetHeight > m) m = uls[i].offsetHeight
        }
        setTop(promos, m)
    }
}

SilasPage.addOnLoadFinish(initializeBookmark)
// printer friendly format
SilasPage.addOnLoadFinish(function() { var location = window.location + ""; if (location.indexOf('#printer-friendly') != -1) SilasPage.formatPrintPage() })
SilasPage.addOnLoadFinish(initializePromos)

/* Misc functions */

function clearDefaultValue(obj) {
    if (!obj.defaultValue || obj.defaultValue == '' || (obj.defaultValue == obj.value)) {
        obj.value = ''
        if (obj.className) obj.className += ' focused'
        else obj.className = 'focused'
    }
}

function getFile(URL, target) {
    if (target) {
        window.open(url, target)
    } else {
        setTimeout("window.location='"+URL+"'", 5000);
    }
}
function gotoBookmark (bookmark) {
    return
}

var popUpDialogResizeable = SilasPage.emailPage