/*
    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))
}

SilasPage.addOnLoadFinish(initializeBookmark)
// printer friendly format
SilasPage.addOnLoadFinish(function() { var location = window.location + ""; if (location.indexOf('#printer-friendly') != -1) SilasPage.formatPrintPage() })

/* 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
}


/*Homepage Motion Functions */
/*Audiences*/

function iniAudiences() {
	window._silasAudState = 'everyone';
	$('everyone').className = 'on';
	$('everyone-full').className = 'on';

	if( $('audience_picker') ){
      var audiencePicker = $('audience_picker');
      var terms = audiencePicker.getElementsByTagName('dt');
      for( var i=0; i < terms.length; i++ ){
        terms[i].onclick = function(){return changeState(this);};
      }
    }

}

function changeState(clickedObj) {
 if (!window.silasAudState) {currentState = 'everyone';}
 else {currentState = window.silasAudState;}

 if (clickedObj.className == 'on') {
	 //console.log('doing nothing');
	 return;
 }
 //console.log(clickedObj.id, currentState);
 $(clickedObj.id+'-full').className = 'on';
 new Effect.Parallel (
 [
 	new Effect.BlindUp(currentState+'-full'),
 	new Effect.BlindDown(clickedObj.id+'-full')
 ], {
	 duration: 0.4
	});
 
 
 $(currentState).className = '';
 clickedObj.className = 'on';

 window.silasAudState = clickedObj.id;
}

function iniAutoSlide(firstTime) {
	if (!$('silas_features') || !$('silas_feature_container_1')) return;
	if (!firstTime) {featureSlide('right', 'auto', 0.5);}
	//window.silasAutoTimer = setTimeout('iniAutoSlide()',7000);
	window.silasAutoTimer = setTimeout('iniAutoSlide()',18000);
}

function featureSlide(direction, auto, duration) {
	if (!auto) {clearTimeout(window.silasAutoTimer);}
	if(!window.silasFeatureState) {
		window.silasFeatureState = 0;
	}
	if (!duration) duration = 0.3;
	var container = $('silas_features');
	var feature1 = $('silas_feature_container_1');
	var feature2 = $('silas_feature_container_2');
	var feature3 = $('silas_feature_container_3');

	if (direction == 'left') {
		if (window.silasFeatureState == -1) {
			new Effect.MoveBy('silas_features', 0, -1100, {duration: duration,  transition: Effect.Transitions.slowstop});
			window.silasFeatureState = 1
		}
		else {
			new Effect.MoveBy('silas_features', 0, 550, {duration: duration,  transition: Effect.Transitions.slowstop});
			window.silasFeatureState--
		}
	}
	if (direction == 'right') {
		if (window.silasFeatureState == 1) {
			new Effect.MoveBy('silas_features', 0, 1100, {duration: duration,  transition: Effect.Transitions.slowstop});
			window.silasFeatureState = -1
		}
		else {
			new Effect.MoveBy('silas_features', 0, -550, {duration: duration,  transition: Effect.Transitions.slowstop});
			window.silasFeatureState++
		}
	}
}
SilasPage.addOnLoad(function() {
window.silasAutoTimer = setTimeout('iniAutoSlide()', 14000);
});
/*Store Homepage Functions*/


function showTypeDesc(selectObj) {
	var sortOptions = $('store-resource-sorter-options');
	var opts = sortOptions.getElementsByTagName('li');
	for( var i=0; i < opts.length; i++ ){
        if (opts[i].className == 'selected') {opts[i].className = '';}
    }
	selectObj.className = 'selected';



	var descriptionList = $('store-resource-sorter-info');
	var descriptions = descriptionList.getElementsByTagName('li');
	for( var i=0; i < descriptions.length; i++ ){
        if (descriptions[i].className == 'selected') {hideIndex = i;}
		if (descriptions[i].id == 'res-' + selectObj.id) {showIndex = i;}
    }
	descriptions[hideIndex].className = '';
	descriptions[showIndex].className = 'selected';
	new Effect.Fade(descriptions[hideIndex]);
	new Effect.Appear(descriptions[showIndex], {duration: 1});
}


function prepareStoreSorter(){
	if($('store-resource-sorter-options')){
		var sortOptions = $('store-resource-sorter-options');
		var opts = sortOptions.getElementsByTagName('li');
      	for( var i=0; i < opts.length; i++ ){
        	opts[i].onclick = function(){return showTypeDesc(this);};
      	}
    }
}
/*
function showLoginTop() {
	//document.getElementById('login-top').style.display='block';
	new Effect.Appear(document.getElementById('login-top'));
	document.getElementById('util_login').onclick=function(){hideLoginTop();return false;};
	return false;
}
function hideLoginTop() {
	//document.getElementById('login-top').style.display='none';
	new Effect.Fade(document.getElementById('login-top'));
	document.getElementById('util_login').onclick = function(){showLoginTop();return false;};
	return false;
}
*/

function showLoginTop() {

var effect;

	if(effect == undefined){
		document.getElementById('login-top').style.display ='';
	}
	else{
		new Effect.Appear(document.getElementById('login-top'));
	}
 
 
 document.getElementById('util_login').onclick=function(){hideLoginTop();return false;};
 
 return false;
}


function hideLoginTop() {

var effect;

	if(effect == undefined){
		document.getElementById('login-top').style.display ='none';
	}
	else{
		new Effect.Fade(document.getElementById('login-top'));
	}
 
	document.getElementById('util_login').onclick = function(){showLoginTop();return false;};
	
	return false;
}
