var deleteForm = false;

function Is() {
    var agent   = navigator.userAgent.toLowerCase();

    this.major  = parseInt(navigator.appVersion);
    this.minor  = parseFloat(navigator.appVersion);

    this.ns     = ((agent.indexOf('mozilla')   != -1) &&
                  (agent.indexOf('spoofer')    == -1) &&
                  (agent.indexOf('compatible') == -1) &&
                  (agent.indexOf('opera')      == -1) &&
                  (agent.indexOf('webtv')      == -1));
    this.ns2    = (this.ns && (this.major      ==  2));
    this.ns3    = (this.ns && (this.major      ==  3));
    this.ns4    = (this.ns && (this.major      ==  4));
    this.ns6    = (this.ns && (this.major      >=  5));
    this.ie     = (agent.indexOf("msie")       != -1);
    this.ie3    = (this.ie && (this.major      <   4));
    this.ie4    = (this.ie && (this.major      ==  4) &&
                  (agent.indexOf("msie 5.0")   == -1));
    this.ie5    = (this.ie && (this.major      ==  4) &&
                  (agent.indexOf("msie 5.0")   != -1));
    this.ie6    = (this.ie && (this.major      ==  4) &&
                  (agent.indexOf("msie 6.0")   != -1));
    this.ieX    = (this.ie && !this.ie3 && !this.ie4);
	this.opera  = (agent.indexOf('opera')      == 0) 
}

var is = new Is();

function launch(newURL, newName, newFeatures, orgName) {
	var PopWin = open(newURL, newName, newFeatures);
	if (PopWin.opener == null) // if something went wrong
		PopWin.opener = window;
		PopWin.opener.name = orgName;
	return PopWin;
}

var ah = 480;
var aw = 640;

function launchPop(url,toolbar,resize,scroll,size) {
	scroll = true;
	if(is.ns4||is.ns6||is.opera) {
		available_width=innerWidth;
		available_height=innerHeight;
	} else if(is.ie4||is.ie5||is.ie6) {
		available_width=screen.width;
		available_height=screen.height;
	}
	if(size=='login') {
		ah = 320;
		aw = 400;
	} else if(size=='aim') {
		ah = 10;
		aw = 10;
	} else if(size=='calendar') {
		ah = 140;
		aw = 160;
	} else if(size=='landscape') {
		ah = 480;
		aw = 700;
	} else if(size=='portrait') {
		ah = 500;
		aw = 530;
	} else if(size=='printer') {
		ah = available_height;
		aw = 600;
	} else if(size=='full') {
		ah = available_height;
		aw = available_width;
	} else if(size=='zoom') {
		ah = 600;
		aw = 500;
	}else {
		ah = 500;
		aw = 600;
	}

	var popLeft = (available_width/2)-(aw/2);
	var popTop = 0;
	if(size=='aim'){
		var popLeft = 9999;
		var popTop = 0;
	}
	var str = "left="+popLeft+",screenX="+popLeft+",top="+popTop+",screenY="+popTop;

	if (!window.myPop || window.myPop.closed) {
		str += ",height=" + ah;
		str += ",innerHeight=" + ah;
		str += ",width=" + aw;
		str += ",innerWidth=" + aw;
		if(scroll){
			str += ",scrollbars=yes";
		}
		if(toolbar){
			str += ",toolbar=yes";
		}
		if(resize){
			str += ",resizable";
		}
		str += ",status=yes";
		myPop = open(url, "myPop", str);
		myPop.focus();
	} else {
		myPop.location.href = url;
		myPop.focus();
	}
}

function launchCal(url,toolbar,resize,scroll,size) {

	ah = 220;
	aw = 170;
	if(is.ns4||is.ns6||is.opera) {
		available_width=innerWidth;
		available_height=innerHeight;
	} else if(is.ie4||is.ie5) {
		available_width=screen.width+480;
		available_height=screen.height;
	}

	var calLeft = (available_width/2)-(aw/2);
	var calTop = (available_height/2)-(ah/2);
	var str = "left="+calLeft+",screenX="+calLeft+",top="+calTop+",screenY="+calTop;

	if (!window.myCal || window.myCal.closed) {
		str += ",height=" + ah;
		str += ",innerHeight=" + ah;
		str += ",width=" + aw;
		str += ",innerWidth=" + aw;
		if(scroll){
			str += ",scrollbars=yes";
		}
		if(toolbar){
			str += ",toolbar=yes";
		}
		if(resize){
			str += ",resizable";
		}
		str += ",status=no";
		myCal = open(url, "myCal", str);
		myCal.focus();
	} else {
		myCal.location.href = url;
		myCal.focus();
	}
}

function trapint(event) {
	if(is.ns4||is.ns6||is.opera) {
		if (event.which>46 && event.which<58) {
			return true;
		} else {
			event.preventDefault();
		}
	}else{
		if (event.keyCode>46 && event.keyCode<58) {
			return true;
		} else {
			event.returnValue = false;
			return false;
		}
	}
}

function trapfloat(event) {
	if(is.ns4||is.ns6||is.opera) {
		if (event.which==13 || event.which==8 || (event.which>45 && event.which<58)) {
			return true;
		} else {
			event.preventDefault();
		}
	}else{
		if (event.keyCode==13 || event.keyCode==8 || (event.keyCode>45 && event.keyCode<58)) {
			return true;
		} else {
			event.returnValue = false;
			return false;
		}
	}
}

function isValidTime(formField) {
	var errors = "";
    var jumpto = "";
	var hasMeridian = false;
	form_el = "document.getElementById('"+formField+"')";
	jumpto = eval(form_el);
	var value = jumpto.value;
	var re = /^\d{1,2}[:]\d{2}([:]\d{2})?( [aApP][mM]?)?$/;
	if (!re.test(value)) {errors = true;}
	if (value.toLowerCase().indexOf("p") != -1) { hasMeridian = true; }
	if (value.toLowerCase().indexOf("a") != -1) { hasMeridian = true; }
	var values = value.split(":");
	if ( (parseFloat(values[0]) < 0) || (parseFloat(values[0]) > 23) ) {errors = true;}
	if (hasMeridian) {
		if ( (parseFloat(values[0]) < 1) || (parseFloat(values[0]) > 12) ) {errors = true;}
	}
	if ( (parseFloat(values[1]) < 0) || (parseFloat(values[1]) > 59) ) {errors = true;}
	if (values.length > 2) {
		if ( (parseFloat(values[2]) < 0) || (parseFloat(values[2]) > 59) ) {errors = true;}
	}
	if(errors){
		alert('Time must be in the 12:00 PM format');
		jumpto.focus();
		return false;
	}
	return true;
}


function limitTextarea(form_name,formField,maxlimit) {
	frm = document.forms[form_name];
	var field = frm.elements[formField];
	if (field.value.length > maxlimit) {
		field.value = field.value.substring(0, maxlimit);
		alert("This textarea has a limit of "+maxlimit+" characters. It has been truncated, please review.");
	}
}

function trapdate(form_name,formField) {
	frm = document.forms[form_name];
	var field = frm.elements[formField];
	msg = '';
	jumpto = '';
	if(field.value != ''){
		var regex = /^(20)([0-9]{2}-((0[13-9]|1[0-2])-(0[1-9]|[12][0-9]|30)| (0[13578]|1[02])-31|02-(0[1-9]|1[0-9]|2[0-8]))|([2468]0| [02468][48]|[13579][26])-02-29)$/;
		if (!regex.test(field.value)) {
			msg = msg + '\n - Dates must be in the ****-**-** (year-month-day) format';
			alert(msg);
		}
	}
}

function restore() {
  location.reload()
}

		function ucw(str){
			re = /_/gi;
			str = str.replace(re,' ');
			strArray = str.split(' ');
			for(j=0; j<strArray.length; j++){
				strArray[j] = strArray[j].charAt(0).toUpperCase() + strArray[j].substring(1);
			}
			return strArray.join(' ');
		}
		function validate(){
			var errors;
			var focus_el;
			for(i=0; i<document.theform.elements.length; i++){
				test = document.theform.elements[i].value;
				name = document.theform.elements[i].name;

				if(document.theform.elements[i].type !='hidden' && test == '' &&  (name=='name' || name=='phone' ||  name=='email')){
					alert(ucw(document.theform.elements[i].name)+' is required');
					document.theform.elements[i].focus();
					return false;
				}
				if(name=='email'){
					var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
					if(!filter.test(test)){
						alert('Please enter a valid email');
						document.theform.elements[i].focus();
						errors = true;
					}
				}
			}
			if(errors){
				return false;
			}else{
				return true;
			}
		}


function confirmDelete(url){
	var agree=confirm('Are You Sure?');
	if (agree)
		launchPop(url);
	else
		return false ;
}

function updateIMG(align,img,id){
	var imgid = 'img_'+id;
	var val = img;
	im = document.getElementById(imgid);
	frm = document.getElementById(id);
	if(img == 'upload/remove_image.gif'){
		img = '/upload/img.gif';
		val = '';
	}
	if(img == 'upload/items/remove_image.gif' ){
		img = '/upload/items/img.gif';
		val = '';
	}
	im.src = img;

	val = val.replace('upload/','');
	val = val.replace('/items/','');
	val = val.replace('/categories/','');
	val = val.replace('/contracts/','');
	val = val.replace('images/','');
	frm.value=val;
}

function updateMEDIA(align,media,id){
	var mediaid = 'media_'+id;
	var val = media;
	im = document.getElementById(mediaid);
	frm = document.getElementById(id);
	val = val.replace('upload/','');
	val = val.replace('/contracts/','');
	val = val.replace('media/','');
	frm.value=val;
}
/* Old tooltip function, quirky in Firefox, replace with below find X & findY
function hideTooltip(){
	document.getElementById('tooltip').style.display="none";
}

function showTooltip(event,tipContent){
	offset = 10;
	bWidth = document.body.clientWidth + document.body.scrollLeft;
	compare = bWidth - event.clientX;
	if(compare<400) offset = -100;
	if(compare<300) offset = -200;
	document.getElementById('tooltip').innerHTML='<table height="100%" width="100%" border="0" cellspacing="0" cellpadding="0">'+unescape(tipContent)+'</table> ';
	document.getElementById('tooltip').style.display="block";
	document.getElementById('tooltip').style.top=event.clientY+10;
	document.getElementById('tooltip').style.left=event.clientX+offset;
	alert(document.getElementById('tooltip').style.left);
}
*/
function findPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}
function findPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

var Cards = new makeArray(4);
Cards[0] = new CardType("MasterCard", "51,52,53,54,55", "16");
var MasterCard = Cards[0];
Cards[1] = new CardType("VisaCard", "4", "13,16");
var VisaCard = Cards[1];
Cards[2] = new CardType("DiscoverCard", "6011", "16");
var DiscoverCard = Cards[2];
Cards[3] = new CardType("AmericanExpress", "34,37", "15");
var AmericanExpress = Cards[3];
var LuhnCheckSum = Cards[4] = new CardType();

function CheckCardNumber(form) {
	var tmpyear;
	if (form.CardName.value.length == 0) {
	alert("Please enter a Name on Card.");
	form.CardName.focus();
	return;
	}
	if (form.CardNumber.value.length == 0) {
	alert("Please enter a Card Number.");
	form.CardNumber.focus();
	return;
	}
	if (form.ExpYear.value.length == 0) {
	alert("Please enter the Expiration Year.");
	form.ExpYear.focus();
	return;
	}
	tmpmonth = form.ExpMon.options[form.ExpMon.selectedIndex].value;
	tmpyear = form.ExpYear.options[form.ExpYear.selectedIndex].value;

	if (!(new CardType()).isExpiryDate(tmpyear, tmpmonth)) {
	alert("This card has already expired.");
	return;
	}
	card = form.CardType.options[form.CardType.selectedIndex].value;
	var retval = eval(card + ".checkCardNumber(\"" + form.CardNumber.value +
	"\", " + tmpyear + ", " + tmpmonth + ");");
	cardname = "";

	if (retval)
		form.submit();
	else {
	for (var n = 0; n < Cards.size; n++) {
		if (Cards[n].checkCardNumber(form.CardNumber.value, tmpyear, tmpmonth)) {
		cardname = Cards[n].getCardType();
		break;
	}
	}
	if (cardname.length > 0) {
		alert("This looks like a " + cardname + " number, not a " + card + " number.");
	}
	else {
		alert("This card number is not valid.");
      }
   }
}

function CardType() {
	var n;
	var argv = CardType.arguments;
	var argc = CardType.arguments.length;

	this.objname = "object CardType";

	var tmpcardtype = (argc > 0) ? argv[0] : "CardObject";
	var tmprules = (argc > 1) ? argv[1] : "0,1,2,3,4,5,6,7,8,9";
	var tmplen = (argc > 2) ? argv[2] : "13,14,15,16,19";

	this.setCardNumber = setCardNumber;  // set CardNumber method.
	this.setCardType = setCardType;  // setCardType method.
	this.setLen = setLen;  // setLen method.
	this.setRules = setRules;  // setRules method.
	this.setExpiryDate = setExpiryDate;  // setExpiryDate method.

	this.setCardType(tmpcardtype);
	this.setLen(tmplen);
	this.setRules(tmprules);
	if (argc > 4)
	this.setExpiryDate(argv[3], argv[4]);

	this.checkCardNumber = checkCardNumber;  // checkCardNumber method.
	this.getExpiryDate = getExpiryDate;  // getExpiryDate method.
	this.getCardType = getCardType;  // getCardType method.
	this.isCardNumber = isCardNumber;  // isCardNumber method.
	this.isExpiryDate = isExpiryDate;  // isExpiryDate method.
	this.luhnCheck = luhnCheck;// luhnCheck method.
	return this;
}

function checkCardNumber() {
	var argv = checkCardNumber.arguments;
	var argc = checkCardNumber.arguments.length;
	var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;
	var year = (argc > 1) ? argv[1] : this.year;
	var month = (argc > 2) ? argv[2] : this.month;

	this.setCardNumber(cardnumber);
	this.setExpiryDate(year, month);

	if (!this.isCardNumber())
	return false;
	if (!this.isExpiryDate())
	return false;

	return true;
}

function getCardType() {
	return this.cardtype;
}

function getExpiryDate() {
	return this.month + "/" + this.year;
}

function isCardNumber() {
	var argv = isCardNumber.arguments;
	var argc = isCardNumber.arguments.length;
	var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;

	if (!this.luhnCheck())
	return false;


	for (var n = 0; n < this.len.size; n++){
		if (cardnumber.toString().length == parseInt(this.len[n])) {
			for (var m = 0; m < this.rules.size; m++) {
				var headdigit = cardnumber.substring(0, this.rules[m].toString().length);
				if (headdigit == this.rules[m])
				return true;
			}
			return false;
		}
	}
	return false;
}

function isExpiryDate() {
	var argv = isExpiryDate.arguments;
	var argc = isExpiryDate.arguments.length;

	year = argc > 0 ? argv[0] : this.year;
	month = argc > 1 ? argv[1] : this.month;

	if (!isNum(year+""))
	return false;
	if (!isNum(month+""))
	return false;
	today = new Date();
	expiry = new Date(year, month);
	if (today.getTime() > expiry.getTime())
	return false;
	else
	return true;
}

function isNum(argvalue) {
	argvalue = argvalue.toString();

	if (argvalue.length == 0)
	return false;

	for (var n = 0; n < argvalue.length; n++)
	if (argvalue.substring(n, n+1) < "0" || argvalue.substring(n, n+1) > "9")
	return false;

	return true;
}

function luhnCheck() {
	var argv = luhnCheck.arguments;
	var argc = luhnCheck.arguments.length;

	var CardNumber = argc > 0 ? argv[0] : this.cardnumber;

	if (! isNum(CardNumber)) {
	return false;
	  }

	var no_digit = CardNumber.length;
	var oddoeven = no_digit & 1;
	var sum = 0;

	for (var count = 0; count < no_digit; count++) {
	var digit = parseInt(CardNumber.charAt(count));
	if (!((count & 1) ^ oddoeven)) {
	digit *= 2;
	if (digit > 9)
	digit -= 9;
	}
	sum += digit;
	}
	if (sum % 10 == 0)
	return true;
	else
	return false;
}

function makeArray(size) {
	this.size = size;
	return this;
}

function setCardNumber(cardnumber) {
	this.cardnumber = cardnumber;
	return this;
}

function setCardType(cardtype) {
	this.cardtype = cardtype;
	return this;
}

function setExpiryDate(year, month) {
	this.year = year;
	this.month = month;
	return this;
}

function setLen(len) {
	if (len.length == 0 || len == null)
	len = "13,14,15,16,19";

	var tmplen = len;
	n = 1;
	while (tmplen.indexOf(",") != -1) {
	tmplen = tmplen.substring(tmplen.indexOf(",") + 1, tmplen.length);
	n++;
	}
	this.len = new makeArray(n);
	n = 0;
	while (len.indexOf(",") != -1) {
	var tmpstr = len.substring(0, len.indexOf(","));
	this.len[n] = tmpstr;
	len = len.substring(len.indexOf(",") + 1, len.length);
	n++;
	}
	this.len[n] = len;
	return this;
}

function setRules(rules) {
	if (rules.length == 0 || rules == null)
	rules = "0,1,2,3,4,5,6,7,8,9";
	  
	var tmprules = rules;
	n = 1;
	while (tmprules.indexOf(",") != -1) {
	tmprules = tmprules.substring(tmprules.indexOf(",") + 1, tmprules.length);
	n++;
	}
	this.rules = new makeArray(n);
	n = 0;
	while (rules.indexOf(",") != -1) {
	var tmpstr = rules.substring(0, rules.indexOf(","));
	this.rules[n] = tmpstr;
	rules = rules.substring(rules.indexOf(",") + 1, rules.length);
	n++;
	}
	this.rules[n] = rules;
	return this;
}

function fixpopup(){
	var scrol = 480;
	if(is.ns4||is.ns6||is.opera) {
		if (document.documentElement.offsetHeight>500){
			scrol=document.documentElement.offsetHeight;
		}
	} else if(is.ie4||is.ie5||is.ie6) {
		if (document.body.scrollHeight>480){
			scrol=document.body.scrollHeight;
		}
	}
	document.body.style.height=scrol+'px';
	return;
}

function getHTTPObject() {
        var xmlhttp;
        /*@cc_on
         @if (@_jscript_version >= 5)
          try {
              xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
              } catch (e) {
              try {
                  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                  } catch (E) {
                  xmlhttp = false;
                  }
              } 
         @else
          xmlhttp = false;
         @end @*/
        if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
         try {
           xmlhttp = new XMLHttpRequest();
           } catch (e) {
           xmlhttp = false;
           }
          }
          return xmlhttp;
}

var http = getHTTPObject(); // We create the HTTP Object
		var keyStr = "ABCDEFGHIJKLMNOP" +
	                "QRSTUVWXYZabcdef" +
	                "ghijklmnopqrstuv" +
	                "wxyz0123456789+/" +
	                "=";
var url_clicks = "clicks.php"; // The server-side scripts

function updateClicks(banner_id) {
	var myRandom=parseInt(Math.random()*99999999);  // cache buster
	http.open("GET", url_clicks + "?rand=" + myRandom + "&banner_id=" + banner_id, true);
	http.send(null);

	return;
}

   function decode64(input) {
      var output = "";
      var chr1, chr2, chr3 = "";
      var enc1, enc2, enc3, enc4 = "";
      var i = 0;

      input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

      do {
         enc1 = keyStr.indexOf(input.charAt(i++));
         enc2 = keyStr.indexOf(input.charAt(i++));
         enc3 = keyStr.indexOf(input.charAt(i++));
         enc4 = 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);
         }

         chr1 = chr2 = chr3 = "";
         enc1 = enc2 = enc3 = enc4 = "";

      } while (i < input.length);

      return output;
   }
function handleHttpResponseStates() {
	if (http.readyState == 4) {
		var response = http.responseText;
		response = decode64(response);
        document.getElementById(targetDiv).innerHTML=response;
	}
}

function fixForm(fixer,fixee){
	els = "address_1,address_2,city,zipcode,state,country";
	elsArray = els.split(",");
	for(i=0; i<elsArray.length; i++){
		elsField = elsArray[i];

		fixerform_el = "document.getElementById('_"+fixer+"_addresses["+elsField+"]')";
		fixerform_el_val = "document.getElementById('_"+fixer+"_addresses["+elsField+"]').value";
		fixerform_el_val = eval(fixerform_el_val);

		fixeeform_el = "document.getElementById('_"+fixee+"_addresses["+elsField+"]')";
		fixeeform_el_val = "document.getElementById('_"+fixee+"_addresses["+elsField+"]').value";
		fixeeform_el_val = eval(fixeeform_el_val);

		fixeeform_el = eval(fixeeform_el);
		fixeeform_el.value = fixerform_el_val;
		if(elsField=='state'){
			fixerstate=fixerform_el_val;
		}

		fixercountry = fixerform_el_val;
		fixeecountry = fixeeform_el_val;
	}
	if(fixercountry!=fixeecountry){
		name = fixee+'_addresses';
		changeMenu(name,fixercountry,fixerstate);
	}
}

function show_calendar(id,type,future){
	var value = document.getElementById(id).value;
	var values = value.split("-");

	url = "/popup.php?action=calendar&y="+values[0]+"&m="+values[1]+"&d="+values[2]+"&id="+id+"&type="+type+"&future="+future;
	launchCal(url,false,false,false,"calendar");
}

function setDays(form) {

  var y = form.year.options[form.year.selectedIndex].value;
  var m = form.month.selectedIndex;
  var d;
  if ( (m == 3) || (m == 5) || (m == 8) || (m == 10) ) {
    days = 30;
  }
  else if (m == 1) {
	if ( (Math.floor(y/4) == (y/4)) && ((Math.floor(y/100) != (y/100)) || (Math.floor(y/400) == (y/400))) )
      days = 29
    else
      days = 28
  }
  else {
    days = 31;
  }

  if (days > form.day.length) {
    for (i = form.day.length; i < days; i++) {
      form.day.length = days;
      form.day.options[i].text = i + 1;
      form.day.options[i].value = i + 1;
    }
  }
  
  if (days < form.day.length) {
    form.day.length = days;
    if (form.day.selectedIndex == -1) 
      form.day.selectedIndex = days - 1;
  }

}
function pickdate(id){
	var frm = self.opener.document.getElementById(id);
	var y = document.getElementById('year').value;
	var m = document.getElementById('yearmonth').value;
	var d = document.getElementById('yearmonthday').value;
	var ymd = y+'-'+m+'-'+d;
	frm.value = ymd;
	self.close();
	self.opener.focus();
}

function showMovie(){	
	document.getElementById('logoswf').style.display='none';
	document.getElementById('davetv').style.display='block';
	document.getElementById('eesmedia').style.display='block';
}

