
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

var bo_noscript_id = 0;

function isIE() {
  var strBrowser = navigator.userAgent.toLowerCase();
  return (strBrowser.indexOf("msie") > -1 && strBrowser.indexOf("mac") < 0);
}

function startIeFix() {
  if (isIE()) {
   document.write('<div style="display: none;" id="bo_noscript_id_' + bo_noscript_id + '">');
  }
}

function endIeFix() {
  if (isIE()) {
   document.write('</div>');
   var theObject = document.getElementById("bo_noscript_id_" + bo_noscript_id++);
   theObject.outerHTML = theObject.innerHTML;
  }
}

/* Client-side access to querystring name=value pairs
	Version 1.2.3
	22 Jun 2005
	Adam Vandenberg
*/
function Querystring(qs) { // optionally pass a querystring to parse
	this.params = new Object()
	this.get=Querystring_get
	
	if (qs == null)
		qs=location.search.substring(1,location.search.length)

	if (qs.length == 0) return

// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ')
	var args = qs.split('&') // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i=0;i<args.length;i++) {
		var value;
		var pair = args[i].split('=')
		var name = unescape(pair[0])

		if (pair.length == 2)
			value = unescape(pair[1])
		else
			value = name
		
		this.params[name] = value
	}
}

function Querystring_get(key, default_) {
	// This silly looking line changes UNDEFINED to NULL
	if (default_ == null) default_ = null;
	
	var value=this.params[key]
	if (value==null) value=default_;
	
	return value
}





	
/*
   name - name of the cookie
   value - value of the cookie
   [expires] - expiration date of the cookie
     (defaults to end of current session)
   [path] - path for which the cookie is valid
     (defaults to path of calling document)
   [domain] - domain for which the cookie is valid
     (defaults to domain of calling document)
   [secure] - Boolean value indicating if the cookie transmission requires
     a secure transmission
   * an argument defaults when it is assigned null as a placeholder
   * a null placeholder is not required for trailing omitted arguments
*/

function setCookie(name, value, expires, path, domain, secure) {
  var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
  document.cookie = curCookie;
}


/*
  name - name of the desired cookie
  return string containing value of specified cookie or null
  if cookie does not exist
*/

function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}


/*
   name - name of the cookie
   [path] - path of the cookie (must be same as path used to create cookie)
   [domain] - domain of the cookie (must be same as domain used to
     create cookie)
   path and domain default if assigned null or omitted if no explicit
     argument proceeds
*/

function deleteCookie(name, path, domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

// date - any instance of the Date object
// * hand all instances of the Date object to this function for "repairs"

function fixDate(date) {
  var base = new Date(0);
  var skew = base.getTime();
  if (skew > 0)
    date.setTime(date.getTime() - skew);
}

function get_ref_code(site) {

	document.write('<div align="right"><font size="1" color="#000000">Reference Code:<b>');	
	
	var ref_code = getCookie(site);
	if (ref_code == "" || ref_code == null) { 
		ref_code = site;
	};
	
	document.write(ref_code);
	
	document.write('</b></font></div>');	
	
}


function get_ri_ref_code(site) {

	document.write('<INPUT type=hidden name=source value="');	
	
	var ref_code = getCookie(site);
	if (ref_code == "" || ref_code == null) { 
		ref_code = site;
	};
	
	document.write(ref_code);
	document.write('">');	
	
}

function get_ref_code_br(site) {

	document.write('<div align="right"><font size="1" color="#000000">Reference Code:<b>');	
	
	var ref_code = getCookie(site);
	if (ref_code == "" || ref_code == null) { 
		ref_code = "brart";
	};
	
	document.write(ref_code);
	
	document.write('</b></font></div>');	
	
}


function get_ri_ref_code_br(site) {

	document.write('<INPUT type=hidden name=source value="');	
	
	var ref_code = getCookie(site);
	if (ref_code == "" || ref_code == null) { 
		ref_code = "brart";
	};
	
	document.write(ref_code);
	document.write('">');	
	
}

function get_ri_visited(site) {

	document.write('<INPUT type=hidden name=visited value="');	
	
	var ref_code = getCookie(site);
	if (ref_code == "" || ref_code == null) { 
		ref_code = 'none';
	};
	
	document.write(ref_code);
	document.write('">');	
	
}

	  
function add_to_visit(site, cur_place) {
	var places = getCookie(site);
	if (places == null) {
		places = "";
	}
	if (places.match(cur_place) == null) {
		setCookie(site, places + '|' + cur_place);
	}
}


function get_ref_code_bti(location, desc) {

	document.write('<a href="http://www.artourismbrazil.com/?vacation=');	
	
	var ref_code = getCookie("arart");
	if (ref_code == "" || ref_code == null) { 
		ref_code = "bti";
	};
	var ref_v = getCookie("arvisit");
	if (ref_v == "" || ref_code == null) { 
		ref_v = "bti";
	};
	
	document.write(ref_code);
	
	document.write(location);
	document.write('&v=' + ref_v + '" title="' + desc + '">');
	 	
	
}

function get_ref_code_bti_carn(location, desc) {

	document.write('<a href="http://www.artourismbrazil.com/brazil_riodejaneiro_carnival.htm?vacation=');	
	
	var ref_code = getCookie("arart");
	if (ref_code == "" || ref_code == null) { 
		ref_code = "bti";
	};
	var ref_v = getCookie("arvisit");
	if (ref_v == "" || ref_code == null) { 
		ref_v = "bti";
	};
	
	document.write(ref_code);
	
	document.write(location);
	document.write('&v=' + ref_v + '" title="' + desc + '">');
	 	
	
}

//------------------------------------------------------
// For Top Frame
//------------------------------------------------------

function URLEncode2(etext)
{
	// The Javascript escape and unescape functions do not correspond
	// with what browsers actually do...
	var SAFECHARS = "0123456789" +					// Numeric
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()";					// RFC2396 Mark characters
	var HEX = "0123456789ABCDEF";

	var plaintext = etext;
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
	    if (ch == " ") {
		    encoded += "+";				// x-www-urlencoded, rather than %20
		} else if (SAFECHARS.indexOf(ch) != -1) {
		    encoded += ch;
		} else {
		    var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
			    alert( "Unicode Character '" 
                        + ch 
                        + "' cannot be encoded using standard URL encoding.\n" +
				          "(URL encoding only supports 8-bit characters.)\n" +
						  "A space (+) will be substituted." );
				encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	} // for

	return encoded;
};

function URLDecode2(etext )
{
   // Replace + with ' '
   // Replace %xx with equivalent character
   // Put [ERROR] in output if %xx is invalid.
   var HEXCHARS = "0123456789ABCDEFabcdef"; 
   var encoded = etext;
   var plaintext = "";
   var i = 0;
   while (i < encoded.length) {
       var ch = encoded.charAt(i);
	   if (ch == "+") {
	       plaintext += " ";
		   i++;
	   } else if (ch == "%") {
			if (i < (encoded.length-2) 
					&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 
					&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
				plaintext += unescape( encoded.substr(i,3) );
				i += 3;
			} else {
				alert( 'Bad escape combination near ...' + encoded.substr(i) );
				plaintext += "%[ERROR]";
				i++;
			}
		} else {
		   plaintext += ch;
		   i++;
		}
	} // while
   return plaintext;
};

//------------------------------------------------------
// For Top Frame - End
//------------------------------------------------------

