// Image rollover - for use please make sure image names follow the following name scheme:
// Idle Image:  image_i.gif
// Hover Image: image_o.gif
// File extension and anything before the _i. does not matter so long as it is consistent between
// the two states (e.g. "image_i.gif" and "hoverimage_o.gif" does not work)
//
// Usage: Assign the class "rollOver" to any image or input field.
// <img src="../javascript/image_i.gif" alt="" class="rollOver" />

ajaxnow = false;

function rollAssign() {
	// Grab elements to parse
	var images = document.getElementsByTagName("img");
	var inputs = document.getElementsByTagName("input");

	var validInputs = new Array();
	var zI = 0;
	for(z=0;z<inputs.length;z++) {
		if(inputs[z].type == "image") {
			validInputs[zI] = inputs[z];
			zI++;
		}
	}


	var elements = new Array();
	for(z=0;z<images.length;z++) {
		elements.push(images[z]);
	}
	for(z=0;z<validInputs.length;z++) {
		elements.push(validInputs[z]);
	}

	for(z=0;z<elements.length;z++) {
		if(elements[z].className.indexOf("rollOver") != -1) {
			elements[z].onmouseover = function() {
				this.src = this.src.replace("_i.","_o.");
			}
			elements[z].onmouseout = function() {
				this.src = this.src.replace("_o.","_i.");
			}
			if(elements[z].type == "image") {
				elements[z].onmousedown = function() {
					this.src = this.src.replace("_o.","_a.");
				}
				elements[z].onmouseup = function() {
					this.src = this.src.replace("_a.","_i.");
				}
				elements[z].onfocus = function() {
					this.blur();
				}
				elements[z].onmouseout = function() {
					if(this.src.indexOf("_a.") != -1) {
						this.src = this.src.replace("_a.","_i.");
					} else {
						this.src = this.src.replace("_o.","_i.");
					}
				}
			}
		}
	}
}


function externalLinks() {

	if (!document.getElementsByTagName) return;

	var anchors = document.getElementsByTagName("a");

	var areas = document.getElementsByTagName("area");

	var forms = document.getElementsByTagName("form");

	for (var i=0; i<anchors.length; i++) {

		var anchor = anchors[i];

		if (anchor.getAttribute("href") &&

		anchor.getAttribute("rel") == "external")

		anchor.target = "_blank";

	}

	for (var x=0; x<areas.length; x++) {

		var area = areas[x];

		if (area.getAttribute("href") &&

		area.getAttribute("rel") == "external")

		area.target = "_blank";

	}

	for (var y=0; y<forms.length; y++) {

		var form = forms[y];

		if (form.getAttribute("rel") == "external")

		form.target = "_blank";

	}

}

// Replace input field with default value on blur if nothing was entered
// Usage: <input type="text" value="Default Value" onfocus="clearText(this)" onblur="replaceText(this)" />
function clearText(thefield) {
if (thefield.defaultValue==thefield.value) { thefield.value = "" }
}

function replaceText(thefield) {
if (thefield.value=="") { thefield.value = thefield.defaultValue }
}


//##################################################
// DOM READY a-dom-ready-extension-for-prototype
//##################################################
try {
    Object.extend(Event, {
        _domReady : function() {
            if (arguments.callee.done) return;
            arguments.callee.done = true;
            if (this._timer) clearInterval(this._timer);
            this._readyCallbacks.each(function(f) { f() });
            this._readyCallbacks = null;
        },
        onDOMReady : function(f) {
            if (!this._readyCallbacks) {
                var domReady = this._domReady.bind(this);
                if (document.addEventListener) document.addEventListener("DOMContentLoaded", domReady, false);
                if (/WebKit/i.test(navigator.userAgent)) {
                    this._timer = setInterval(function() {
                        if (/loaded|complete/.test(document.readyState)) domReady();
                    }, 10);
                }
                Event.observe(window, 'load', domReady);
                Event._readyCallbacks =  [];
            }
            Event._readyCallbacks.push(f);
        }
    });
} catch(e) {
}

//##########################
// 				onLoad Events					#
//##########################
// Page Load Initialization
Event.onDOMReady(function() { 
	rollAssign();
	externalLinks();
});	

//##########################
// 				aJaX RSVP Response  				#
//##########################
function sendCallInEmail(Email,Speak){
		if(ajaxnow == false){
			ajaxnow	= true;		
			var url = baseURL+'rsvp.php';
			var pars = 'email='+Email+'&speaker='+Speak+'&submit=Submit'+'&set=send_call_in_email';
			var target = 'ajax_updates';
			var myAjax = new Ajax.Updater(target, url, {method: 'post', parameters: pars, evalScripts: true });
			$('ajax_updates').setStyle({ 'display': 'block'});
			ajaxnow	= false;
		}
	};
	
function signUpEmail(Email,Speak){
		if(ajaxnow == false){
			ajaxnow	= true;		
			var url = baseURL+'rsvp.php';
			var pars = 'email='+Email+'&speaker='+Speak+'&submit=Submit'+'&set=sign_up_email';
			var target = 'ajax_updates';
			var myAjax = new Ajax.Updater(target, url, {method: 'post', parameters: pars, evalScripts: true });
			$('ajax_updates').setStyle({ 'display': 'block'});
			ajaxnow	= false;
		}
	};
	

function sendRsvpYes(Uname,Speak){
		if(ajaxnow == false){
			ajaxnow	= true;		
			var url = baseURL+'rsvp.php';
			var pars = 'username='+Uname+'&speaker='+Speak+'&submit=Submit'+'&set=attending';
			var target = 'ajax_updates';
			var myAjax = new Ajax.Updater(target, url, {method: 'post', parameters: pars });
			$('ajax_updates').setStyle({ 'display': 'block'});
			$('rsvp_content').replace("<div id=\"rsvp_content\"><h3>RSVP For This Teleconversation</h3><p>If you are no longer able to attend this teleconversation please inform us by cancelling your RSVP.</p><p><a id=\"rsvpNo\" href=\"javascript:void(null);\" onclick=\"sendRsvpNo('{$user_logged_in}','{$category_ID}');\">Cancel my RSVP</a></p></div>");
			ajaxnow	= false;
		}
	};
	
function sendRsvpNo(Uname,Speak){
		//alert('Username: '+username);
		//alert('Speaker: '+speaker);
		if(ajaxnow == false){
			ajaxnow	= true;
			var url = baseURL+'rsvp.php';
			var pars = 'username='+Uname+'&speaker='+Speak+'&submit=Submit'+'&set=notattending';
			var target = 'ajax_updates';
			var myAjax = new Ajax.Updater(target, url, {method: 'post', parameters: pars });
			$('ajax_updates').setStyle({ 'display': 'block'});
			$('rsvp_content').replace("<div id=\"rsvp_content\"><h3>RSVP For This Teleconversation</h3><p>You must RSVP to receive the call-in phone number for this teleconversation. The call-in number and access code will be sent to you via email.</p><p><a id=\"rsvpYes\" href=\"javascript:void(null);\" onclick=\"sendRsvpYes('{$user_logged_in}','{$category_ID}');\">Yes - I'm Attending</a></p></div>");
			ajaxnow	= false;
		}
	};	
	
function checkRsvp(Uname,Speak){
		//alert('Username: '+username);
		//alert('Speaker: '+speaker);
		if(ajaxnow == false){
			ajaxnow	= true;		
			var url = baseURL+'rsvp.php';
			var pars = 'username='+Uname+'&speaker='+Speak+'&submit=Submit';
			var target = 'ajax_updates';
			var myAjax = new Ajax.Updater(target, url, {method: 'post', parameters: pars });
			$('ajax_updates').setStyle({ 'display': 'block'});		
			ajaxnow	= false;		
		}
	};	

//##########################
// 				Register Page JS 						#
//##########################

function checkUsernameValid(){
		if($F('reg_username')!==''){
			setTimeout("checkfield('username', $('thisform'), $('reg_username'));",1);
		}else{
			$('reg_usernamecheckitvalue').replace('<span id="reg_usernamecheckitvalue"></span>');	
		}
}

function checkEmailValid(){
		if($F('reg_email')!==''){
			setTimeout("checkfield('email', $('thisform'), $('reg_email'));",1);
		}else{
			$('reg_emailcheckitvalue').replace('<span id="reg_emailcheckitvalue"></span>');	
		}
}



function updateCount(){
	limit = 255;
	length = $F('title').length;
	remainingchars = limit-length;
	
	$('remainingCount').replace('<span id="remainingCount">'+remainingchars+'</span>');
	
	
	
	}