function display(element) {
	var but = document.getElementById(element);
	but.style.display = 'block';
}
function hide(element) {
	var but = document.getElementById(element);
	but.style.display = 'none';
}
function visibleFlash(){
	var obj = top.document.getElementsByTagName("object");
	var emb = top.document.getElementsByTagName("embed");
	obj.style.visibility = 'visible';
	emb.style.visibility = 'visible';
}
function resizeHeight(altezza,id){
	var TotAltezza = altezza;
	var thisOne = document.getElementById(id);
	thisOne.style.height = TotAltezza + "px";
}
function resizeWidth(larghezza,id){
	var TotLarghezza = larghezza;
	var thisOne = document.getElementById(id);
	thisOne.style.width = TotLarghezza + "px";
}
function setMarginLeft(margin,id){
	var margine = margin;
	var thisOne = document.getElementById(id);
	thisOne.style.marginLeft = margine + "px";
}
function setTop(altezza,id){
	var TotAltezza = altezza;
	document.getElementById(id).style.top = TotAltezza + "px";
}
function linkInTopFrame(link,frame){
        top.frames[frame].location.href = link;
}
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
function changeLabel(id,newLabel){
	var idLab = document.getElementById(id);
	idLab.innerHTML = newLabel;
}
var Base64 = {
    // private property
    _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
    // public method for encoding
    encode : function (input) {
        var output = "";
        var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
        var i = 0;
        input = Base64._utf8_encode(input);
        while (i < input.length) {
            chr1 = input.charCodeAt(i++);
            chr2 = input.charCodeAt(i++);
            chr3 = input.charCodeAt(i++);
            enc1 = chr1 >> 2;
            enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
            enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
            enc4 = chr3 & 63;
            if (isNaN(chr2)) {
                enc3 = enc4 = 64;
            } else if (isNaN(chr3)) {
                enc4 = 64;
            }
            output = output +
            this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
            this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
        }
        return output;
    },
    // public method for decoding
    decode : function (input) {
        var output = "";
        var chr1, chr2, chr3;
        var enc1, enc2, enc3, enc4;
        var i = 0;
        input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
        while (i < input.length) {
            enc1 = this._keyStr.indexOf(input.charAt(i++));
            enc2 = this._keyStr.indexOf(input.charAt(i++));
            enc3 = this._keyStr.indexOf(input.charAt(i++));
            enc4 = this._keyStr.indexOf(input.charAt(i++));
            chr1 = (enc1 << 2) | (enc2 >> 4);
            chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
            chr3 = ((enc3 & 3) << 6) | enc4;
            output = output + String.fromCharCode(chr1);
            if (enc3 != 64) {
                output = output + String.fromCharCode(chr2);
            }
            if (enc4 != 64) {
                output = output + String.fromCharCode(chr3);
            }
        }
        output = Base64._utf8_decode(output);
        return output;
    },
    // private method for UTF-8 encoding
    _utf8_encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";
        for (var n = 0; n < string.length; n++) {
            var c = string.charCodeAt(n);
            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }
        }
        return utftext;
    },
    // private method for UTF-8 decoding
    _utf8_decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;
        while ( i < utftext.length ) {
            c = utftext.charCodeAt(i);
            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }
        }
        return string;
    }
}
/* Numbers */
function numToDB(number){
	return number.replace(",","");
}
function number_format (number, decimals, dec_point, thousands_sep){
  var exponent = "";
  var numberstr = number.toString ();
  var eindex = numberstr.indexOf ("e");
  if (eindex > -1){
    exponent = numberstr.substring (eindex);
    number = parseFloat (numberstr.substring (0, eindex));
  }

  if (decimals != null){
    var temp = Math.pow (10, decimals);
    number = Math.round (number * temp) / temp;
  }
  var sign = number < 0 ? "-" : "";
  var integer = (number > 0 ?
      Math.floor (number) : Math.abs (Math.ceil (number))).toString ();

  var fractional = number.toString ().substring (integer.length + sign.length);
  dec_point = dec_point != null ? dec_point : ".";
  fractional = decimals != null && decimals > 0 || fractional.length > 1 ?
               (dec_point + fractional.substring (1)) : "";
  if (decimals != null && decimals > 0){
    for (i = fractional.length - 1, z = decimals; i < z; ++i)
      fractional += "0";
  }

  thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ?
                  thousands_sep : null;
  if (thousands_sep != null && thousands_sep != ""){
	for (i = integer.length - 3; i > 0; i -= 3)
      integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
  }

  return sign + integer + fractional + exponent;
}
/* TRIGGER */
var timerId;
function startTrigger(n){
	if(!n){
		n = 5000;
	}
	if(!timerId){
        	timerId = setTimeout('hide("labelFinish");stopTrigger();', n);
	}
}
function stopTrigger(){
	clearTimeout(timerId);
	timerId = false;
}

/* AJAX */
function callApiPOST(url, parameters) {
	http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		alert('Internal Server Error');
		return false;
	}
	http_request.onreadystatechange = ajaxExecute;
	http_request.open('POST', url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(parameters);
}
function ajaxExecute() {
	if (http_request.readyState < 4){
		// do nothing
	}else if (http_request.readyState == 4) {
		if (http_request.status == 200) {
                        var sn = document.getElementById('labelFinish');
                        sn.innerHTML = "Cart Updated Succesfully!";
                        display('labelFinish');
                        startTrigger();
		} else {
                        var sn = document.getElementById('labelFinish');
                        sn.innerHTML = "There was a problem Updating the cart!";
                        display('labelFinish');
                        startTrigger();
		}
	}
}
/* Check */
function checkReservation(formname){
	var problems = '';
	var mailExp = new RegExp("^[a-zA-Z0-9_.-]{1,}\@[a-zA-Z0-9]{2,}\\.[a-zA-Z.]{1,}$");

	if(document.forms[formname].elements['user_title'].value.length < 1) problems += '- Missing Title\n';
	if(document.forms[formname].elements['user_first'].value.length < 1) problems += '- Missing First Name\n';
	if(document.forms[formname].elements['user_last'].value.length < 1) problems += '- Missing Last Name\n';
	if(document.forms[formname].elements['company'].value.length < 1) problems += '- Missing Company Name\n';
	if(document.forms[formname].elements['user_day_phone'].value.length < 1) problems += '- Missing Daytime Phone\n';
	if(!mailExp.test(document.forms[formname].elements['user_email'].value)) problems += '- Invalid E-Mail format\n';
	if(document.forms[formname].elements['event'].value == 'Other') {
	        if(document.forms[formname].elements['event_other'].value.length < 1) problems += '- Missing Event type\n';
	}else{
		if(document.forms[formname].elements['event'].value == 'Select') problems += '- Missing Event type\n';
	}
	if(document.forms[formname].elements['group_size'].value.length < 1) problems += '- Missing Group Size\n';


	if(problems.length > 0){
		alert(problems);
		return false;
	}
	return true;
}
/* Flash */
function spitFlash(filename,width,height,xmlLoc){
	if(!width) var width='100%';
	if(!height) var height='100%';
	document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="'+width+'" height="'+height+'" id="artist" align="middle">');
		document.write('<param name="loop" value="false">');
		document.write('<param name="allowScriptAccess" value="sameDomain" />');
		document.write('<param name="movie" value="' + filename + '" />');
		document.write('<param name="wmode" value="transparent">');
		document.write('<param name="quality" value="high" />');
		document.write('<param name="flashvars" value="overstretch=none&file='+xmlLoc+'" />');
		document.write('<param name="bgcolor" value="#000000" />');
		document.write('<embed src="' + filename + '" flashvars="overstretch=none&file='+xmlLoc+'" loop="false" quality="high" bgcolor="#000000" width="'+width+'" height="'+height+'" wmode="transparent" name="artist" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
	document.write('</object>');
}
/* This */
function doChanges(){
	var inTextHeight = eval(document.getElementById('bigContainer').offsetHeight);
	top.resizeHeight(inTextHeight,'hackHeadersx');
	top.resizeHeight(inTextHeight,'hackHeaderdx');
}