/************************************************************* 
* Developed for OGCC by Depman Brothers
* 
* Javascript custom classes and functions 
* 
* C 2007 - This document is the intellectual property of Depman Brothers and OGCC
**************************************************************/

var dom = document.getElementById; 
var iebody = (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;
var responseBoxWidth = 320;
var responseBoxHeight = 100;
var responseBoxStartHeight = responseBoxHeight;
var newsletters = '';
var newslettersArr = new Array();
var newslettersCnt = 0;
var newslettersSent = 0;
var EmailAddress = '';
var newsletterButtonText = '';
window.onload = show;

function typeOf(value) {
    var s = typeof value;
    if (s === 'object') {
        if (value) {
            if (typeof value.length === 'number' &&
                    !(value.propertyIsEnumerable('length')) &&
                    typeof value.splice === 'function') {
                s = 'array';
            }
        } else {
            s = 'null';
        }
    }
    return s;
}
function isEmpty(o) {
    var i, v;
    if (typeOf(o) === 'object') {
        for (i in o) {
            v = o[i];
            if (v !== undefined && typeOf(v) !== 'function') {
                return false;
            }
        }
    }
    return true;
}
function show( id ) {
	if ( id && typeOf(id) != 'object' ){
		var menuId = id.substr(5);
		var d = document.getElementById( id );
		var dt = document.getElementById('mmenu' + menuId );
	}
	for ( var i = 1; i <= 200; i ++ ) {
		if ( document.getElementById('smenu' + i) ){
			document.getElementById('smenu' + i).style.display ='none';
			// url path changed from ../img/nav_btn_bar_m.png
			document.getElementById('mmenu' + i).style.background = 'transparent url(img/nav_btn_bar_m.png) repeat-x center';
		}
	}
	if ( d ) {
		d.style.display = 'block';
			// url path changed from ../img/nav_btn_bar_m.png
		dt.style.background = 'transparent url(img/nav_btn_bar_m_hover.png) repeat-x center';
	}
}

// Fix the Righ hand alligned content wrapping
function getMenuHeight(){
	if ( $('pageBodyLeft') )
	var h = $('pageBodyLeft').offsetHeight;
	return ( h );
}
function getContentHeight(){
	if ( $('pageBodyRightContent') )
	var h = $('pageBodyRightContent').offsetHeight;
	return ( h );
}
function setContentHeight(){
	var variation = 30;
	var mH = getMenuHeight();
	var cH = getContentHeight()
	if ( mH > cH ){
		newContentH = mH - variation;
		$('pageBodyRightContent').style.height = newContentH + 'px';
	}
}

/* Newsletter Signup */
function showNewslettersSelect(){
	toggleDivDisplay('newsLettersSelectBox','block');
	newsletterButtonText = $('newsLettersText').innerHTML;
	$('newsLettersText').innerHTML = '';
	toggleDivDisplay('newsLettersSelectBoxClose','block');
	$('email').focus();
}
function hideNewslettersSelect(){
	toggleDivDisplay('newsLettersSelectBox','none');
	toggleDivDisplay('newsLettersSelectBoxClose','none');
	$('newsLettersText').innerHTML = newsletterButtonText;
}
function setUpResponseBox(div){
	var thisDiv = $(div);
	var w = responseBoxWidth;
	var h = responseBoxHeight;
	setDivPos(w,h,thisDiv);
	thisDiv.style.zIndex = 199;
}
function sendPostRequest(nwsltrs){
	var tempNewslettersArr = new Array();
	var cnt = 0;
	tempNewslettersArr = nwsltrs.split(",");
	for ( var i = 0; i < tempNewslettersArr.length; i++ ){
		if ( $(tempNewslettersArr[i]).checked == true ){
			newslettersArr[cnt] = tempNewslettersArr[i];
			cnt ++;
		}
	}
	newsletters = newslettersArr.join(",");
	newslettersCnt = newslettersArr.length;
	startTransmitting();
}
function startTransmitting(){
	emailAddress = $('email').value;
	if ( emailAddress == "" || emailAddress == " " ){
		toggleDivDisplay('MissingEmail','block');
		$('email').focus();
	} else {
		toggleDivDisplay('MissingEmail','none');
		var div = 'Response';
		if ( newslettersArr.length > 0 ){
			responseBoxHeight += ( 15 * newslettersArr.length ); // increase the height for each div
			setUpResponseBox('ResponseBox');
			$('ResponseFromCsNewsletter').innerHTML = '';
			$('ResponseBox').style.display = 'block';
			$('ResponseCloseButton').style.display = 'none';
			$('Response').innerHTML = 'Sending your request, please wait...<br/>';
			for ( var i = 0; i <= newslettersArr.length; i++ )
				addDiv('nl_' + newslettersArr[i],'');

			hideNewslettersSelect(); // hide the select area
			sendRequest(newslettersArr[newslettersSent]); // send out the first newsletter request
		}
	}
}
function sendRequest(div){
	var pars = 'command=subscribe&Submit=1&email=' + emailAddress + '&list=';
	var url = 'newsletter/csNewsletter.cgi';
	var newPars = pars + div;
	var myAjax = new Ajax.Updater('nl_'+div, url, {parameters: newPars, onFailure: reportError, onSuccess: reportSuccess});
	$('nl_'+div).style.display = 'none'; 
	newslettersSent++;
}

function reportSuccess(request){
	if ( $('ResponseBox').style.display == 'block' ){
		
		if ( (newslettersCnt) != newslettersSent ){
			var saveText = $('Response').innerHTML;
			$('Response').innerHTML = saveText + '<br />' + newslettersArr[newslettersSent-1]; 
			sendRequest(newslettersArr[newslettersSent]);
		} else {
			completeTransaction();
		}
	}
}
function completeTransaction(){
	// reset global variables
	responseBoxHeight = responseBoxStartHeight;
	newsletters = '';
	newslettersCnt = 0;
	newslettersSent = 0;
	
	$('Response').innerHTML = 'Signup Completed for the following newsletters:<br/>';
	for ( var i = 0; i < newslettersArr.length; i++ ){
		var saveText = $('Response').innerHTML;
		$('Response').innerHTML = saveText + '<br />' + newslettersArr[i];
	}
	
	$('ResponseCloseButton').style.display = 'block';
	var delay = 15000;
	setTimeout(function(){$('ResponseBox').style.display = 'none'}, delay);
}
function reportError(request){
	if ( $('ResponseBox').style.display == 'block' ){
		$('Response').innerHTML = 'Sorry, there was no response from the server. Please try again.';
		completeTransaction();
	}
}
function addDiv(divName,divContent){
	var container = 'ResponseFromCsNewsletter';
	var tempContainer = $(container).innerHTML;
	$(container).innerHTML = tempContainer + '<div id="' + divName + '">' + divContent + '</div>';
}
function toggleDivDisplay(div,status){
	if ( $(div) )
		$(div).style.display = status;
}

/* used to set a div element to absolute and center on the screen */
function setDivPos(width,height,obj){
	if ( window.innerHeight ){ //FF
		//alert('FF');
		var offsetW = window.pageXOffset;
		var offsetH = window.pageYOffset;
		var innerW 	= window.innerWidth;
		var innerH 	= window.innerHeight;
	} else if ( iebody ) { //IE
		//alert('IE');
		var offsetW = iebody.scrollLeft;
		var offsetH = iebody.scrollTop;
		var innerW 	= iebody.clientWidth;
		var innerH 	= iebody.clientHeight;
	}
	if ( !offsetW ) offsetW = 0;
	if ( !offsetH ) offsetH = 0;
	var winL = offsetW+(innerW-width)/2;
	var winT = offsetH+(innerH-height)/2;
	if (winL < 0) winL = 0;
	if (winT < 0) winT = 0;
	var props = new Array(winL, winT);
	var this_div 	= $(obj);

	this_div.style.display 	= 'block';
	this_div.style.position = 'absolute';
	this_div.style.top 		= winT + "px";
	this_div.style.left 	= winL + "px";
	this_div.style.height 	= height + "px";
	this_div.style.width 	= width + "px";
}

/*function show( id ) {
	if ( id && typeOf(id) != 'object' ){
		var menuId = id.substr(5);
		var dd = document.getElementById( 'smenu' + menuId );
		var dt = document.getElementById( 'mmenu' + menuId );
	}
	if ( dd ){
		dd.style.display = 'block';
		dt.style.background = 'transparent url(../img/nav_btn_bar_m_hover.png) repeat-x center';
	}
	for ( var i = 1; i <= 200; i ++ ) {
		if ( document.getElementById('smenu' + i) ){
			document.getElementById('smenu' + i).style.display ='none';
			document.getElementById('mmenu' + i).style.background = 'transparent url(../img/nav_btn_bar_m.png) repeat-x center';
		}
	}
}*/

// very simple browser detect
if(navigator.appName == "Microsoft Internet Explorer")
	var browser = "IE";
else
	var browser = "FF";
// popup test
function popupcheck(){
	var myTest = window.open("about:blank","","directories=no,height=100,width=100,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,top=0,location=no");
	if (!myTest) {
		if ( browser == "FF" )
			window.location = "?p=204&p_id=21";
		else
			window.location = "?p=203&p_id=21";
	} else {
		myTest.close();
	}
}
function popupcheck_fix(){
	var myTest = window.open("about:blank","","directories=no,height=100,width=100,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,top=0,location=no");
	if (!myTest) {
		alert("A popup blocker was detected.");
	} else {
		myTest.close();
		history.go(-1);
		//window.location = "index.html";
	}
}

function print_page(id)
{
	var newwin;
	myref = "wp_print_page.php?p_id=" + id;
	newwin = window.open(myref, 'popupwindow', 'width=700,height=550,scrollbars=yes,resizable=no,left = 5,top = 5'); 
	newwin.window.focus();
}
function closeme()
{
	opener.window.location=opener.window.location;
	self.close();
	return false;
}
function closeme_nr()
{
	self.close();
	return false;
}
function submitform(form)
{
	document.form.submit();
}
function printp()
{
	if (window.print != null) { 
		window.print();
	} else { 
		alert('Unfortunately, your browser does not support this shortcut.  Please select Print from the File menu.'); 
	}
}

// copyright 1999 Idocs, Inc. http://www.idocs.com
// Distribute this script freely but keep this notice in place
function numbersonly(myfield, e, dec)
{
	var key;
	var keychar;
	
	if (window.event)
		key = window.event.keyCode;
	else if (e)
		key = e.which;
	else
		return true;
	keychar = String.fromCharCode(key);
	
	// control keys
	if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) )
		return true;

	// numbers
	else if ((("0123456789").indexOf(keychar) > -1))
		return true;
	
	// decimal point jump
	else if (dec && (keychar == "."))
	{
		myfield.form.elements[dec].focus();
		return false;
	}
	else
		return false;
}

var downStrokeField;
function autojump(fieldName,nextFieldName,fakeMaxLength)
{
	var myForm=document.forms[document.forms.length - 1];
	var myField=myForm.elements[fieldName];
	myField.nextField=myForm.elements[nextFieldName];
	
	if (myField.maxLength == null)
		myField.maxLength=fakeMaxLength;
	
	myField.onkeydown=autojump_keyDown;
	myField.onkeyup=autojump_keyUp;
}
	
function autojump_keyDown()
{
	this.beforeLength=this.value.length;
	downStrokeField=this;
}
	
function autojump_keyUp()
{
	if (
		(this == downStrokeField) && 
		(this.value.length > this.beforeLength) && 
		(this.value.length >= this.maxLength)
		)
		this.nextField.focus();
	downStrokeField=null;
}
