var server = 'http://berrygrape.org/';

//////
var MM_contentVersion = 10;
var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
if ( plugin ) {
		var words = navigator.plugins["Shockwave Flash"].description.split(" ");
	    for (var i = 0; i < words.length; ++i)
	    {
		if (isNaN(parseInt(words[i])))
		continue;
		var MM_PluginVersion = words[i]; 
	    }
	var MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion;
}
else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0 
   && (navigator.appVersion.indexOf("Win") != -1)) {
	document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n'); //FS hide this from IE4.5 Mac by splitting the tag
	document.write('on error resume next \n');
	document.write('MM_FlashCanPlay = ( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & MM_contentVersion)))\n');
	document.write('</SCR' + 'IPT\> \n');
}
if ( (MM_FlashCanPlay) ) {
	var flash = true;
} else{
	var flash = false;
}
/////

function ajax(url){
	var xmlHttp = getXMLHttp();
	xmlHttp.onreadystatechange = function(){
		if(xmlHttp.readyState == 4){
//this is the output (after call below)
			window.alert(xmlHttp.responseText);
			return xmlHttp.responseText;
		}
	}
//this is the input
	xmlHttp.open("GET", url, true);
	xmlHttp.send(null);
}

function getXMLHttp(){
	var xmlHttp;
	try{
		//Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	}
	catch(e){
		//Internet Explorer
		try{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e){
			try{
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e){
				alert("Your browser does not support AJAX!")
				return false;
			}
		}
	}
	return xmlHttp;
}

function containsClassName(elem, classToAdd){
	if(!elem || elem.nodeType != 1){
		return false;
	}
	var classes = elem.className;
	if(!classes){ //not a member of any class
		return false;
	}
	if(classes == classToAdd){ //elem is a member of only this one class
		return true;
	}
	return classes.search("\\b" + classToAdd + "\\b") != -1; //return whether or not elem's class atribute contains the className string
}

function stringContainsClassName(string, classToAdd){
	return string.search("\\b" + classToAdd + "\\b") != -1; //return whether or not elem's class atribute contains the className string
}

function getElement(elem){
	if(elem.nodeType == 1){
		return elem; // Return element
	}
	else if(document.getElementById(elem)){
		return document.getElementById(elem); // Return element
	}
	else{
		return false; // input error
	}
}

function showHide(elem){
	if(elem){
		if(elem.style.display == "none"){
			elem.style.display = "";
		}
		else{
			elem.style.display = "none";
		}
	}
}

function show(elem){
	elem = getElement(elem);
	elem.style.display = '';
}

function hide(elem){
	elem = getElement(elem);
	elem.style.display = 'none';
}

function remove(elem){
	elem = getElement(elem);
	elem.parentNode.removeChild(elem);
}

function visible(elem){
	elem = getElement(elem);
	elem.style.visibility = 'visible';
}

function invisible(elem){
	elem = getElement(elem);
	elem.style.visibility = 'hidden';
}

function getXYpos(elem) {
   if (!elem) {
      return {"x":0,"y":0};
   }
   var xy={"x":elem.offsetLeft,"y":elem.offsetTop}
   var par=getXYpos(elem.offsetParent);
   for (var key in par) {
      xy[key]+=par[key];
   }
   return xy;
}

function insertAfter(referenceNode, node){
	referenceNode.parentNode.insertBefore(node, referenceNode.nextSibling);
}

function getBrowserSize(){
	if(typeof(window.innerWidth) == 'number'){
		//Non-IE
		var browserS = {
			width: window.innerWidth,
			height: window.innerHeight
		}
	}
	else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		var browserS = {
			width: document.documentElement.clientWidth,
			height: document.documentElement.clientHeight
		}
	}
	else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		var browserS = {
			width: document.body.clientWidth,
			height: document.body.clientHeight
		}
	}
	return browserS;
}

function getWindowSize(){
	screenWidth = '';
	screenHeight = '';
}

function getStyle(elem, style){
	if(!document.getElementById){
		return;
	}
	var value = elem.style[toCamelCase(style)];
	if(!value){
		if(document.defaultView){
			value = document.defaultView.getComputedStyle(elem, "").getPropertyValue(style);
		}
		else if(elem.currentStyle){
			value = elem.currentStyle[toCamelCase(style)];
		}
	}
	return value;
}

function toCamelCase(sInput){
	var oStringList = sInput.split('-');
	if(oStringList.length == 1){
		return oStringList[0];
	}
	var ret = sInput.indexOf("-") == 0 ? 
		oStringList[0].charAt(0).toUpperCase() + oStringList[0].substring(1) : oStringList[0];
	for(var i = 1; i < oStringList.length; i++){
		var s = oStringList[i];
		ret += s.charAt(0).toUpperCase() + s.substring(1);
	}
	return ret;
}

function getCheckboxValues(elem, separator){
	var out = '';
	for(i = 0; i < elem.length; i++){
		if(elem[i].checked){
			out += elem[i].value;
			out += separator;
		}
	}
	return out;
}

// value can be an integer (array index) or a value
function selectValue(elem, value){
	// since a value could be an integer, scann for mathcing values first
	// if no matches are found, and IF INT, select that index (if in range)
	var maxValue = elem.length;
	var matchFound = false;
	for(i = 0; i < maxValue; i++){
		if(elem[i].value == value){
			elem[i].selected = true;
			matchFound = true;
			break;
		}
	}
	if(matchFound === false){
		if(typeof(value) == 'number'){
			if((value >= 0) && (value < maxValue)){
				elem[value].selected = true;
			}
		}
	}
}

// Adds event handlers without interrupting what exists
// EXAMPLE: Event.add(document,'mouseup',function(){a1('jj'); window.alert("me");});

var Event = {
	add: function(obj,type,fn){
		if(obj.attachEvent){
			obj['e'+type+fn] = fn;
			obj[type+fn] = function(){obj['e'+type+fn](window.event);}
			obj.attachEvent('on'+type,obj[type+fn]);
		}
		else{
			obj.addEventListener(type,fn,false);
		}
	},
	remove: function(obj,type,fn){
		if (obj.detachEvent){
			obj.detachEvent('on'+type,obj[type+fn]);
			obj[type+fn] = null;
		}
		else{
			obj.removeEventListener(type,fn,false);
		}
	}
}

function ajax_loading(elem){
	var position = getXYpos(elem);
	if(browser == "IE"){
		var xOffset = parseInt(elem.offsetWidth); // Using getStyle() in IE can result in "auto" instead of an integer...
		var yOffset = 3;
	}
	else{
		var xOffset = parseInt(getStyle(elem, 'width'));
		var yOffset = -2;
	}
	if(browser == "FF"){
		yOffset = -3;
	}
	if(browser == "Opera"){
		yOffset = -1;
	}
	if(getElement('ajax_loading')){
		getElement('ajax_loading').parentNode.removeChild(getElement('ajax_loading'));
	}
		var loading = document.createElement("IMG");
		loading.id = "ajax_loading";
		loading.style.border = "0";
		loading.src = "/loading.gif";
		loading.style.position = 'absolute';
		loading.style.left = parseInt(position['x']+xOffset+8)+"px";
		loading.style.top = parseInt(position['y']+yOffset)+"px";
	if(browser == "IE"){
		document.body.appendChild(loading);
	}
	else{
		elem.parentNode.appendChild(loading);
	}
}
function ajax_loading_done(){
	if(getElement('ajax_loading')){
		hide('ajax_loading');
	}
}

function hide_ajax_messages(){
	clean_ajax_messages('IMG', 'ajax');
	clean_ajax_messages('P', 'ajax');
	clean_ajax_messages('DIV', 'ajax');
}

function clean_ajax_messages(type, classN){
	var msgs = document.getElementsByTagName(type);
	for(i=0; i<msgs.length; i++){
		if(containsClassName(msgs[i], classN)){
			if(containsClassName(msgs[i], 'ajaxError')){
				msgs[i].className = msgs[i].className.replace("ajaxError", ""); // This "erases" a message
			}
			hide(msgs[i]);
		}
	}
}

function get_ajax_error_messages(){
	return _get_ajax_error_messages('DIV', 'ajaxError');
}

function _get_ajax_error_messages(type, classN){
	var msgs = document.getElementsByTagName(type);
	var j = 0;
	for(i=0; i<msgs.length; i++){
		if(containsClassName(msgs[i], classN)){
			j++;
		}
	}
	return j;
}

var ajaxValidationBusy = true;

function validateForm(elem){
	if(ajaxValidationBusy === false){
		if(get_ajax_error_messages() == 0){
			elem.submit();//return true;
		}
	}
	else{
		setTimeout("validateForm();", 100);
	}
}

var browserStr = navigator.userAgent;
var browser = "FF";
var browserVersion = 0;
//window.alert(browserStr);
if(browserStr.match("MSIE") == "MSIE"){
	browser = "IE";
	browserVersion = browserStr.substring(browserStr.indexOf("MSIE ")+5, browserStr.indexOf(";", browserStr.indexOf("MSIE ")));
}
else if(browserStr.match("Chrome") == "Chrome"){
	browser = "Chrome";
	browserVersion = browserStr.substring(browserStr.indexOf("Chrome")+7, browserStr.indexOf("Safari")-1);
}
else if(browserStr.match("Safari") == "Safari"){
	browser = "Safari";
	browserVersion = browserStr.substring(browserStr.indexOf("Version")+8, browserStr.indexOf("Safari")-1);
}
else if(browserStr.match("Opera") == "Opera"){
	browser = "Opera";
	browserVersion = browserStr.substring(browserStr.indexOf("Version")+8);
}
else{
	browserVersion = browserStr.substring(browserStr.indexOf("Firefox")+8, browserStr.indexOf(" (", browserStr.indexOf("Firefox")));
}
//browserVersion = parseFloat(browserVersion);
//window.alert(browser+" v"+browserVersion);

/***********************************************
* Disable "Enter" key in Form script- By Nurul Fadilah(nurul@REMOVETHISvolmedia.com)
* This notice must stay intact for use
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/
function handleEnter(field, event){
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if(keyCode == 13){
		var i;
		for(i = 0; i < field.form.elements.length; i++){
			if(field == field.form.elements[i]){
				break;
			}
		}
		do{i = (i + 1) % field.form.elements.length;}
		while(field.form.elements[i].type == "hidden");
		field.form.elements[i].focus();
		return false;
	}
	return true;
}

function closeOnEsc(elem, event){
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if(keyCode == 27){ // ESC key pressed?
		if(getElement(elem)){
			remove(getElement(elem));
		}
		return false;
	}
	return true;
}

function firstFieldFocus(elem){
	for(i = 0; i < elem.length; i++){
		if(elem[i].type != "hidden"){
			if(elem[i].disabled != true){
				elem[i].focus();
				break;
			}
		}
	}
}