
function showTab(which) {

	for (i = 0; i < accordion.length; i++) {
		document.getElementById(accordion[i]).style.display = "none";
	}
	document.getElementById(which).style.display = "block";
}
function setTab(which) {
	if(document.getElementById(which)) {document.getElementById(which).className = "selected";}
}
function applySelectedTo(link, which) {
	var ul = document.getElementsByTagName("ul")[which]; // get the first ul tag on the page
	var allLinks = ul.getElementsByTagName("a"); // get all the links within that ul
	for (var i=0; i<allLinks.length; i++) { // iterate through all those links
		allLinks[i].className = ""; // and assign their class names to nothing
	}
	link.className = "selected";  // finally, assign class="selected" to our chosen link
}
function getCity() {
	var city = document.frmLocations.selCities.value;
	var city = city.split('|');
	document.getElementById("DumpsterPrice").innerHTML = formatCurrency(city[0]);
}
function formatCurrency(num) {	
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
		num = "0";
		sign = (num == (num = Math.abs(num)));
		num = Math.floor(num*100+0.50000000001);
		cents = num%100;
		num = Math.floor(num/100).toString();
	if(cents<10)
		cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+
		num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '$' +  num + '.' + cents);
}
// track an event with GA
function trackEvent(elementRef, param1, param2, param3) {
	// get the href from the link
	virtualLink = $(elementRef).attr('href');
	// push an event to track external links
	_gaq.push(['_trackEvent', param1, param2, param3]);
}
// track a page view with GA
function trackPageview(elementRef) {
	// get the href from the link
	virtualLink = $(elementRef).attr('href');
	// push a page view to GA
	_gaq.push(['_trackPageview', virtualLink]);
}
// track an external link with GA
function trackExternalLink(elementRef, param1, param2) {
	// get the href from the link
	redirectLink = $(elementRef).attr('href');
	// get the target from the link
	linkTarget = $(elementRef).attr('target');
	// push an event to track external links
	if (param1 == undefined && param2 == undefined) {
		_gaq.push(['_trackEvent', 'Outgoing links', 'Click', redirectLink]);
	} else if (param2 == undefined) {
		_gaq.push(['_trackEvent', param1, 'Click - Outgoing links', redirectLink]);
	} else {
		_gaq.push(['_trackEvent', param1, param2, redirectLink]);
	}
	// if the link is not opening in a new window delay the link
	if (linkTarget != '_blank') {
		setTimeout('document.location = "' + redirectLink + '"', 100);
	}
}
function sendSiteTunerConversion(stConversionType, stCconversionValue, callbackURL) {
	var url_post = "/apis/sitetuners/postConversion.php";
	
	$.ajax({
		type: "POST",
		url: url_post,
		data: "stConversionType="+ stConversionType +"& stCconversionValue="+ stCconversionValue,
		success: function(msg){
			if (callbackURL != undefined) {
				var target = callbackURL.target;
				if (target == '_blank') {
					window.open(callbackURL);
				} else {
					location.href = callbackURL;
				}
			}
		}
	});
}
function MM_findObj(n, d) { //v4.01
  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 && d.getElementById) x=d.getElementById(n); return x;
}

function YY_checkform() { //v4.71
//copyright (c)1998,2002 Yaromat.com
  var a=YY_checkform.arguments,oo=true,v='',s='',err=false,r,o,at,o1,t,i,j,ma,rx,cd,cm,cy,dte,at;
  for (i=1; i<a.length;i=i+4){
    if (a[i+1].charAt(0)=='#'){r=true; a[i+1]=a[i+1].substring(1);}else{r=false}
    o=MM_findObj(a[i].replace(/\[\d+\]/ig,""));
    o1=MM_findObj(a[i+1].replace(/\[\d+\]/ig,""));
    v=o.value;t=a[i+2];
    if (o.type=='text'||o.type=='password'||o.type=='hidden'){
      if (r&&v.length==0){err=true}
      if (v.length>0)
      if (t==1){ //fromto
        ma=a[i+1].split('_');if(isNaN(v)||v<ma[0]/1||v > ma[1]/1){err=true}
      } else if (t==2){
        rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-zA-Z]{2,4}$");if(!rx.test(v))err=true;
      } else if (t==3){ // date
        ma=a[i+1].split("#");at=v.match(ma[0]);
        if(at){
          cd=(at[ma[1]])?at[ma[1]]:1;cm=at[ma[2]]-1;cy=at[ma[3]];
          dte=new Date(cy,cm,cd);
          if(dte.getFullYear()!=cy||dte.getDate()!=cd||dte.getMonth()!=cm){err=true};
        }else{err=true}
      } else if (t==4){ // time
        ma=a[i+1].split("#");at=v.match(ma[0]);if(!at){err=true}
      } else if (t==5){ // check this 2
            if(o1.length)o1=o1[a[i+1].replace(/(.*\[)|(\].*)/ig,"")];
            if(!o1.checked){err=true}
      } else if (t==6){ // the same
            if(v!=MM_findObj(a[i+1]).value){err=true}
      }
    } else
    if (!o.type&&o.length>0&&o[0].type=='radio'){
          at = a[i].match(/(.*)\[(\d+)\].*/i);
          o2=(o.length>1)?o[at[2]]:o;
      if (t==1&&o2&&o2.checked&&o1&&o1.value.length/1==0){err=true}
      if (t==2){
        oo=false;
        for(j=0;j<o.length;j++){oo=oo||o[j].checked}
        if(!oo){s+='* '+a[i+3]+'\n'}
      }
    } else if (o.type=='checkbox'){
      if((t==1&&o.checked==false)||(t==2&&o.checked&&o1&&o1.value.length/1==0)){err=true}
    } else if (o.type=='select-one'||o.type=='select-multiple'){
      if(t==1&&o.selectedIndex/1==0){err=true}
    }else if (o.type=='textarea'){
      if(v.length<a[i+1]){err=true}
    }
    if (err){s+='* '+a[i+3]+'\n'; err=false}
  }
  if (s!=''){alert('The required information is incomplete or contains errors:\t\t\t\t\t\n\n'+s)}
  document.MM_returnValue = (s=='');
}
function parseStrForParam(param1, param2) {
	var str = param2;
	if ((str == null) || (str == "")) {
		return "";
	} else {
		if (str.indexOf(param1) == -1) {
			return "";
		}
		var startString = str.substr(str.indexOf(param1) + (param1.length + 1));
		var end = (startString.indexOf("&") != -1) ? (startString.indexOf("&")) : startString.length;
		var answer = startString.substr(0,end);
		return answer;
	}
}
function parseURLForParam(fieldName) {
	var str = unescape(document.location.href);
	if ((str == null) || (str == "")) {
		return "";
	} else {
		if (str.indexOf(fieldName) == -1) {
			return "";
		}
		var startString = str.substr(str.indexOf(fieldName) + (fieldName.length + 1));
		var end = (startString.indexOf("&") != -1) ? (startString.indexOf("&")) : startString.length;
		var answer = startString.substr(0,end);
		return answer;
	}
}
//GEO Ip
//IPInfoDB jQuery JSON query example
//Tested with FF 3.5, Opera 10, Chome 5 and IE 8
//Geolocation data is stored as serialized JSON in a cookie
//Bug reports : http://forum.ipinfodb.com/viewforum.php?f=7
function geolocate(timezone, cityPrecision) {
  var key = 'c14981cb44f4693818737750bf5957758c6b80ae2e1fde4a5c304f0abc23b201';
  var api = (cityPrecision) ? "ip_query.php" : "ip_query_country.php";
  var domain = 'api.ipinfodb.com';
  var version = 'v2';
  var url = "http://" + domain + "/" + version + "/" + api + "?key=" + key + "&output=json" + ((timezone) ? "&timezone=true" : "&timezone=false" ) + "&callback=?";
  var geodata;
  var JSON = JSON || {};
  
  // implement JSON.stringify serialization
  JSON.stringify = JSON.stringify || function (obj) {
    var t = typeof (obj);
    if (t != "object" || obj === null) {
      // simple data type
      if (t == "string") obj = '"'+obj+'"';
        return String(obj);
    } else {
    // recurse array or object
      var n, v, json = [], arr = (obj && obj.constructor == Array);
      for (n in obj) {
        v = obj[n]; t = typeof(v);
        if (t == "string") v = '"'+v+'"';
        else if (t == "object" && v !== null) v = JSON.stringify(v);
        json.push((arr ? "" : '"' + n + '":') + String(v));
      }
      return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
    }
  };
  
  // implement JSON.parse de-serialization
  JSON.parse = JSON.parse || function (str) {
    if (str === "") str = '""';
      eval("var p=" + str + ";");
      return p;
  };
  
  //Check if cookie already exist. If not, query IPInfoDB
  this.checkcookie = function(callback) {
    geolocationCookie = getCookie('geolocation');
    if (!geolocationCookie) {
      getGeolocation(callback);
    } else {
      geodata = JSON.parse(geolocationCookie);
      callback();
    }
  }
  
  //Return a geolocation field
  this.getField = function(field) {
    try {
      return geodata[field];
    } catch(err) {}
  }
  
  //Request to IPInfoDB
  function getGeolocation(callback) {
    try {
      $.getJSON(url,
      function(data){
        if (data['Status'] == 'OK') {
          geodata = data;
          JSONString = JSON.stringify(geodata);
          setCookie('geolocation', JSONString, 365);
          callback();
        }
      });
    } catch(err) {}
  }
  
  //Set the cookie
  function setCookie(c_name, value, expire) {
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expire);
    document.cookie = c_name+ "=" +escape(value) + ((expire==null) ? "" : ";expires="+exdate.toGMTString());
  }
  
  //Get the cookie content
  function getCookie(c_name) {
    if (document.cookie.length > 0 ) {
      c_start=document.cookie.indexOf(c_name + "=");
      if (c_start != -1){
        c_start=c_start + c_name.length+1;
        c_end=document.cookie.indexOf(";",c_start);
        if (c_end == -1) {
          c_end=document.cookie.length;
        }
        return unescape(document.cookie.substring(c_start,c_end));
      }
    }
    return '';
  }
}

