/*
    Author: Joe Tan
    Email: jtan@silaspartners.com
*/    
var KinteraVars = function() {
    function Kintera(e) {
    }
    var self = Kintera
    var tmp = window.location + ''
    var parts = tmp.split('/')
    var site=false
    for (var i=0;i<parts.length;i++) {
        if (parts[i] == 'site') site=true
        if (site) {
            if (parts[i].indexOf('c') == 0 && !self.c) {
                self.cURL = parts[i]
                self.c = parts[i].substr(2)
            } else if (parts[i].indexOf('b') == 0 && !self.b) {
                self.bURL = parts[i]
                self.b = parts[i].substr(2)
            } else if (parts[i].indexOf('k') == 0 && !self.k) {
                self.kURL = parts[i]
                self.k = parts[i].substr(2)
            }
        }
    }
    return self
}();

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]()
        }
    }
    self.addOnLoad = addOnLoad
    self.addOnLoadFinish = addOnLoadFinish
    self.initialize = initialize
    self.plugins = Array()
    self.pluginsFinish = Array()
    return self;
}();


function initializePageHeader() {
    // setup page header, kintera specific
    var breadcrumb = document.getElementById('breadcrumb');
    var links = GetElementsWithClassName('a', 'Path', breadcrumb)
    var label = false
    if (links && links[1]) {
        label = links[1].innerHTML
    } else {
        var fonts = GetElementsWithClassName('font', 'Path', breadcrumb)
        if (fonts && fonts[0]) {
            label = fonts[0].innerHTML
        }
    }
    if (label) {
        label = label.toLowerCase().replace(' ', '_');
        var silas_body = document.getElementById('silas-wrap');
        if (silas_body) silas_body.className += ' '+label
    }
}

function initializeBookmark() {
    var location = window.location + ""
    if (location.indexOf('#') != -1)
        gotoBookmark(location.substring(location.indexOf('#')+1))
}

SilasPage.addOnLoadFinish(initializeBookmark)
SilasPage.addOnLoadFinish(initializePageHeader)



/*
Some useful utility DOM functions
*/
function GetElementsWithClassName(elementName,className,obj) {
    var allElements = null
    if (obj) {
        allElements = obj.getElementsByTagName(elementName);
    } else {
    	allElements = document.getElementsByTagName(elementName);
    }
	var elemColl = new Array();
	for (i = 0; i< allElements.length; i++) {
		if (isClass(allElements[i], className)) {
			elemColl[elemColl.length] = allElements[i];
		}
	}
	return elemColl;
}
function DOM_insertAfter(newChild,refChild)
//Post condition: if childNodes[n] is refChild, than childNodes[n+1] is newChild.
{
  var parent=refChild.parentNode;
  if(parent.lastChild==refChild) return parent.appendChild(newChild);
  else return parent.insertBefore(newChild,refChild.nextSibling);
}
function isClass(object, className) {
	return (object.className.search('(^|\\s)' + className + '(\\s|$)') != -1);
}


/* 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 gotoBookmark (bookmark) {
    return
}
function clearDefault(obj) { return clearDefaultValue(obj); }
function doDropDown(obj) {
    var url = obj.options[obj.selectedIndex].value
    if (url != "null") {
    window.location = url
    }
}
//Get elements by class name 
/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
	
	To get all a elements in the document with a “info-links” class.
    	getElementsByClassName(document, "a", "info-links");
	To get all div elements within the element named “container”, with a “col” class.
    	getElementsByClassName(document.getElementById("container"), "div", "col"); 
	To get all elements within in the document with a “click-me” class.
    	getElementsByClassName(document, "*", "click-me"); 
*/

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

//ver 1.1
var popup_array = Array();
function open_popup(url, popup_name, options) {
	var cur_popup = popup_array[popup_name];
	var is_popup_defined = (typeof(cur_popup) == 'object');
	var is_popup_open = (is_popup_defined)
		? !(cur_popup.closed)
		: false;

	if ( is_popup_defined && is_popup_open ) {
		cur_popup.document.write (' ');
		cur_popup.focus();
		cur_popup.location.href = url;
		cur_popup.focus();
	} else if ((is_popup_defined && !is_popup_open) || !is_popup_defined) {
		popup_array[popup_name] = window.open(url, popup_name, options);
	}
}

function popIntList()
{
	open_popup('PageServer?pagename=sp_international_list', 'media_window', 'width=600,height=530,scrollbars=yes,resizable=yes,location=no,menubar=no,status=no,toolbar=no,directories=no,personalbar=no');
}