function autoSelect(el) {
	// one-click select a block of text
    if(el.tagName === "TEXTAREA" || (el.tagName === "INPUT" && el.type === "text")) {
        el.select();
        return;
    }
    
    if (window.getSelection) { // FF, Safari, Opera
        var sel = window.getSelection();
        var range = document.createRange();
        range.selectNodeContents(el);
        sel.removeAllRanges();
        sel.addRange(range);
    } else if (document.selection) { // IE
        document.selection.empty();
        var range = document.body.createTextRange();
        range.moveToElementText(el);
        range.select();
    }
};

function new_captcha() {
	var randomnumber=Math.floor(Math.random()*1001)
	var capdiv = $("imgCaptcha");
	capdiv.src = "/captcha_image.php?a=" + randomnumber;
}

function is_browser_ie() {
	if (window.navigator.appName.indexOf("Explorer") > -1) {
		return true;
	} else {
		return false;
	}
}

function is_opera() {
	if (window.navigator.appName.indexOf("Opera") > -1) {
		return true;
	} else {
		return false;
	}
}

function squeezebox_iframe(loc,w,h) {
	var ifr = new Element("iframe", { 'width': w, 'height':h, 'border':0, 'src':loc, id: 'ifr_gen' });
	$$("body").grab(ifr);

	SqueezeBox.fromElement($("ifr_gen"), {
		size: {x: w, y: h},
		handler: 'adopt' // we set a handler to disable handler/parser detection
	});
}

function set_email_links(cl) {
	$$("span."+cl).each( function(em) {
		var addr = em.get("text");
		addr = addr.replace(" _AT_ ","@");
		var el = new Element("a", {
			'href' : 'mailto:' + addr,
			'text' : addr
		});
		el.replaces(em);
	});
}

/***************
form helper functions
***************/

function get_label_text(labs,for_id) {
	var txt = "label not found";
	labs.each(function(l) {
		if (l.get('for') == for_id) { txt = l.get('text'); }
	});
	return txt;
}

function check_required(oform) {
	//ssr(gsr() + "in check_required()\n");
	var ok_to_submit = true;
	if (typeof(oform) == "object" && oform.id != "") { // form to check must have an ID.
		//ssr(gsr() + "CHECK FORM: "+oform.id+"\n");
		var labs = $$("#"+oform.id+" label");
		var requ = $$("#"+oform.id+" input.required","#"+oform.id+" textarea.required");
		if (requ.length > 0) {
			var missing = new Array();
			var c = 0;
			requ.each(function(r) {
				//ssr(gsr() + "REQUIRED ELEMENT: "+r.name+"\n");
				if (r.get('tag') == "textarea") {

					// assuming only one tinyMCE per page, when involved with "required elements"
					// set val from tiny even if it's blank...
					r.value = tinyMCE.activeEditor.getContent();

					if (r.value == "") {
						ok_to_submit = false;
						missing[c] = get_label_text(labs,r.id).replace(":","");
						c++;
					}
				} else {
					switch (r.type) {
						case "text":
							if (r.value == "") {
								ok_to_submit = false;
								missing[c] = get_label_text(labs,r.id).replace(":","");
								c++;
							}
							break;
						case "checkbox":
							if (r.checked !== true) {
								ok_to_submit = false;
								missing[c] = get_label_text(labs,r.id).replace(":","");
								c++;
							}
							break;
						//case "radio":
							// not sure how to handle radio yet, as it's series of possibles...
							//break;
					}
				}
			});
			
			
			if (ok_to_submit === true) {
				//ssr(gsr() + "\n\nOK TO SUBMIT THIS FORM!\n\n");
				oform.submit();
			} else {
				//ssr(gsr() + "\n\nNOT OK TO SUBMIT THIS FORM!\n\n");
				//ssr(gsr() + "missing: "+missing.join(", ")+"\n");
				alert("Please fill in all required fields.<br /><br />Missing fields: "+missing.join(", "));
			}

		} else {
			//ssr(gsr() + "no required elements found?");
			oform.submit();
		}
	} else {
		//ssr(gsr() + "no form id or sumtin? ["+oform+"]");
	}
}

function set_radio(oForm,oRadio,oVal) {
	for (var i=0; i < oForm.elements[oRadio].length; i++) {
		if (oForm.elements[oRadio][i].value == oVal) {
			oForm.elements[oRadio][i].checked = true;
		}
	}
}

function get_radio(oForm,oRadio) {
	for (var i=0; i < oForm.elements[oRadio].length; i++) {
		if (oForm.elements[oRadio][i].checked === true) {
			return oForm.elements[oRadio][i].value;
		}
	}
}

function check_filename(fname,tpe) {
	var ret = false;
	var suf = fname.slice(-3);
	suf = suf.toLowerCase();
	switch (tpe) {
		case "gfx":
			if (suf == "gif" || suf == "jpg" || suf == "png") {
				ret = true;
			}
			break;
	}
	return ret;
}

function check_all(oform,button) {
	if (typeof(oform) == "object" && typeof(button) == "object") {
		if (button.value == 'Uncheck All') {
			var cfg = "";
			button.value = 'Check All';
		} else {
			var cfg = "checked";
			button.value = 'Uncheck All';
		}
		for (i=0; i<oform.elements.length; i++) {
			if (oform.elements[i].type == "checkbox") {
				oform.elements[i].checked = cfg;
			}
		}
	} else {
		//ssr(gsr() + "check_all() problems... oform: "+oform+", button: "+button);
	}
}

function isValidDate(day,month,year){
	var dteDate;
	dteDate=new Date(year,month,day);
	return ((day==dteDate.getDate()) && (month==dteDate.getMonth()) && (year==dteDate.getFullYear()));
}

function check_scroll_to_me() {
	var scrollmark = $('scrolltome');
	//if (typeof(scrollmark) == "object") {
	if (scrollmark) {
		//scrollmark.scrollTo();
		var myFx = new Fx.Scroll(window, { duration: 4000 }).toElement(scrollmark);
	}
}

function homepage_fade_pic() {
	var t = $("fadepic");
	var myFx;
	
	if ($("fadepicimg")) {
		myFx = new Fx.Tween($("fadepicimg"), {
			onComplete: function() {
				$("fadepicimg").destroy();
				homepage_fade_pic();
			}
		});
		myFx.start('opacity',1,0);

	} else {

		var el = new Element("img", {
			'width' : '277',
			'height' : '274',
			'border' : '0',
			'src' : 'gfx/fadepic_0'+cur_fade+'.jpg',
			'id' : 'fadepicimg'
		});
		el.setStyle("opacity","0");
		t.grab(el);
	
		myFx = new Fx.Tween($("fadepicimg"), {
			onComplete: function() {
				setTimeout(function() { homepage_fade_pic() } ,5000);
			}
		});
		myFx.start('opacity',0,1);

		cur_fade++;
		if (cur_fade > num_fades) { cur_fade = 1; }
	}

}

/***************
DOMREADY
+
EVENT LISTENERS
+
INIT VARS
***************/

var isie = is_browser_ie();
var isopera = is_opera();
//var ajax_url = "/handler_ajax";
//var uniq_base = ssid;
var num_fades = 5;
var cur_fade = 1;

window.addEvent('domready', function() {
	// assigns squeezebox behavior to <a href="#" class="boxed" rel="config">
	SqueezeBox.assign($$('a.boxed'), { parse: 'rel' });		
	
	// add onsubmit action to forms with class='chkreq'
	$$('form.chkreq').each(function(frm) {
		//ssr(gsr() + "adding chkreq to 1 form["+frm.id+"]\n");
		frm.addEvent('submit',function() { check_required(this); return false; })
	});
	////ssr(gsr() + "domready!\n");
	
	$$('img.hdrlink').each(function(di) {
		//di.store("srcval",di.get("src"));
		var bn = di.get("src").replace("gfx/btn_off_","").replace(".png","");
		di.set("src","gfx/null.gif");
		di.setStyle("background-image","url('gfx/btn_"+bn+".png')");
	});
	
	set_email_links("email");
	
	if ($("fadepic")) {
		homepage_fade_pic();
	}

});

