
var win = null;
function popup(mypage, myname, w, h, features) {
	var winl = (screen.width-w)/2;
	var wint = (screen.height-h)/2;
	if (winl < 0) winl = 0;
	if (wint < 0) wint = 0;
	var settings = 'height=' + h + ',';
	settings += 'width=' + w + ',';
	settings += 'top=' + wint + ',';
	settings += 'left=' + winl + ',';
	settings += features;
	win = window.open(mypage, myname, settings);
	win.window.focus();
}

var req = createXMLHttpRequest();

function createXMLHttpRequest() { 
  
	var ua; 

	if(window.XMLHttpRequest) { 
		try { 
			ua = new XMLHttpRequest(); 
		} catch(e) { 
			ua = false; 
		} 
	} else if(window.ActiveXObject) { 
		try { 
			ua = new ActiveXObject("Microsoft.XMLHTTP"); 
		} catch(e) { 
			ua = false; 
		} 
	} 
	
	return ua; 
}

function get_browser() {
	if (navigator.appName.indexOf("Microsoft") != -1){
		return "IE";
	} else if (navigator.appName.indexOf("Netscape") != -1) {
		return "NS";
	}
}
//http://www.permadi.com/tutorial/flashGetObject/index.html
function getFlashMovieObject(movieName)
{
  if (window.document[movieName]) 
  {
      return window.document[movieName];
  }
  if (navigator.appName.indexOf("Microsoft Internet")==-1)
  {
    if (document.embeds && document.embeds[movieName])
      return document.embeds[movieName]; 
  }
  else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
  {
    return document.getElementById(movieName);
  }
  
}
  
function isNumericNLength(s, min, max) {
	if (!max) {
		if (s.length != min || !isNumeric(s)) {
			return false;
		}		
	}
	else {
		if (!(s.length >= min && s.length <= max) || !isNumeric(s)) {
			return false;
		}
	}
	return true;
}
function isValidPhone(TheNumber) {
	var valid = 1;
	var GoodChars = "0123456789()-+. ";
	var i = 0;
	if (TheNumber=="" || TheNumber.length < 10) {
		valid = 0;
	}
	for (i =0; i <= TheNumber.length -1; i++) {
		if (GoodChars.indexOf(TheNumber.charAt(i)) == -1) {
			valid = 0;
		}
	}
	return valid;
}
function isEmpty(s) {
	return ((s == null) || (s.length == 0))
}

function trim2(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}

function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}

// this trim all duplicated white spaces
function trim(value) {
	var temp = value;
	var obj = /^(\s*)([\W\w]*)(\b\s*$)/;
	if (obj.test(temp)) { temp = temp.replace(obj, '$2'); }
	var obj = / +/g;
	temp = temp.replace(obj, " ");
	if (temp == " ") { temp = ""; }
	return temp;
}

function trimNCap(s) {
	s = capitalize(s.toLowerCase());
	s = trim(s);
	return s;
}

function trim2(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
	
function isNumeric(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;

   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
}
function isValidEmail(emailAddress) {
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[(2([0-4]\d|5[0-5])|1?\d{1,2})(\.(2([0-4]\d|5[0-5])|1?\d{1,2})){3} \])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
    return re.test(emailAddress);
}
function isValidZipCode(value) {
//	var re = /^[0-9]{5}([\-][0-9]{4})?$/;
   var re = /^\d{5}([\-]\d{4})?$/;
   return (re.test(value));
}
function isValidCreditCard(type, ccnum) {
   if (type == "Visa") {
      // Visa: length 16, prefix 4, dashes optional.
      var re = /^4\d{3}-?\d{4}-?\d{4}-?\d{4}$/;
   } else if (type == "MasterCard") {
      // Mastercard: length 16, prefix 51-55, dashes optional.
      var re = /^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/;
   } else if (type == "Discover") {
      // Discover: length 16, prefix 6011, dashes optional.
      var re = /^6011-?\d{4}-?\d{4}-?\d{4}$/;
   } else if (type == "American Express") {
      // American Express: length 15, prefix 34 or 37.
      var re = /^3[4,7]\d{13}$/;
   } else if (type == "Diners") {
      // Diners: length 14, prefix 30, 36, or 38.
      var re = /^3[0,6,8]\d{12}$/;
   }
   if (!re.test(ccnum)) return false;
   // Remove all dashes for the checksum checks to eliminate negative numbers
   ccnum = ccnum.split("-").join("");
   // Checksum ("Mod 10")
   // Add even digits in even length strings or odd digits in odd length strings.
   var checksum = 0;
   for (var i=(2-(ccnum.length % 2)); i<=ccnum.length; i+=2) {
      checksum += parseInt(ccnum.charAt(i-1));
   }
   // Analyze odd digits in even length strings or even digits in odd length strings.
   for (var i=(ccnum.length % 2) + 1; i<ccnum.length; i+=2) {
      var digit = parseInt(ccnum.charAt(i-1)) * 2;
      if (digit < 10) { checksum += digit; } else { checksum += (digit-9); }
   }
   if ((checksum % 10) == 0) return true; else return false;
}

function capitalize(val) {
	var newVal = "";
	if (!isEmpty(val)) {
		vals = val.split(" ");
		for(var c=0; c < vals.length; c++) {
			newVal += vals[c].substring(0,1).toUpperCase() + vals[c].substring(1,vals[c].length) + " ";
		}
        }
	return newVal;
    //return s.charAt(0).toUpperCase() + s.substr(1).toLowerCase();
}

function replaceButtonText(buttonId, text) {
	//http://www.permadi.com/tutorial/jsInnerHTMLDOM/index.html
	// WORKS BOTH IE AND NS
	if (document.getElementById) {
		var button=document.getElementById(buttonId);
		if (button) {
			if (button.childNodes[0]) {
				button.childNodes[0].nodeValue=text;
			} else if (button.value) {
				button.value=text;
			} else {
				//if (button.innerHTML)
				button.innerHTML=text;
			}
		}
	}
}

function replaceText(id, text) {
	if (document.getElementById) {
		var element = document.getElementById(id);
		if (element) {
			element.innerHTML=text;
		}
	}
	return true;
}

function disableButton(buttonId) {
	if (document.getElementById) {
		var button=document.getElementById(buttonId);
		if (button) {
			button.disabled = true;
		}
	}
}

function enableButton(buttonId) {
	if (document.getElementById) {
		var button=document.getElementById(buttonId);
		if (button) {
			button.disabled = false;
		}
	}
}
// return the value of the radio button that is checked
// return an empty string if none are checked, or
// there are no radio buttons
function get_radio_checked_value(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

// set the radio button with the given value as being checked
// do nothing if there are no radio buttons
// if the given value does not exist, all the radio buttons
// are reset to unchecked
function set_radio_checked_value(radioObj, newValue) {
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}


// WORKS WITH simple elements like textbox and textarea
function createQuery(form) {
	// type = button, checkbox, file, hidden, image, password
	// radio, reset, select-one, select-multiple, submit,
	// text, textarea
    var elements = form.elements;
    var pairs = new Array();

    for (var i = 0; i < elements.length; i++) {

        if ((name = elements[i].name) && (value = elements[i].value)) {
        	if (elements[i].type == "radio" || elements[i].type == "checkbox") {
			if (elements[i].checked == true) {
				pairs.push(name + "=" + encodeURIComponent(value));
			}
		} else {
            		pairs.push(name + "=" + encodeURIComponent(value));
            	}
         }
    }

    return pairs.join("&");
}

function escape_quote(string) {
	string = string.replace(/"/gi,"&#34;");
	string = string.replace(/'/gi,"&#39;");
	return string;
}

function show_table(id) {
	var obj = document.getElementById(id);
	obj.style.display = "";  // block will shrink the table
}

function hide_table(id) {
	var obj = document.getElementById(id);
	obj.style.display = "none";
}

function show_or_hide_table(id) {
	var obj = document.getElementById(id);
	if (obj.style.display == "none") {
		obj.style.display = "";
	} else {
		obj.style.display = "none"
	}
}
function copy(text2copy) {
  if (window.clipboardData) {
    window.clipboardData.setData("Text",text2copy);
  } else {
    var flashcopier = 'flashcopier';
    if(!document.getElementById(flashcopier)) {
      var divholder = document.createElement('div');
      divholder.id = flashcopier;
      document.body.appendChild(divholder);
    }
    document.getElementById(flashcopier).innerHTML = '';
    var divinfo = '<embed src="http://www.probanners.com/_clipboard.swf" FlashVars="clipboard='+escape(text2copy)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
    document.getElementById(flashcopier).innerHTML = divinfo;
  }
}

function fadeContent(opacity) {
	if(document.getElementById) {
		obj=document.getElementById('exvid');
		if(opacity>=0) {
			setOpacity(obj, opacity);
			opacity-=10;
			window.setTimeout("fadeContent("+opacity+")", 15);
		} else {
			obj.src="video/lee_1_bbros_2.jpg";
			setOpacity(obj, 100);
		}
	}
}

function setOpacity(obj, opacity) {
	opacity=(opacity == 100)?99.999:opacity;
	// IE/Win
	obj.style.filter="alpha(opacity:"+opacity+")";
	// Safari<1.2, Konqueror
	obj.style.KHTMLOpacity=opacity/100;
	// Older Mozilla and Firefox
	obj.style.MozOpacity=opacity/100;
	// Safari 1.2, newer Firefox and Mozilla, CSS3
	obj.style.opacity=opacity/100;
}

// remove % < > [ ] { } ; & + - " '( )
function checkForm(form) {
    var elements = form.elements;

    for (var i = 0; i < elements.length; i++) {
	if (elements[i].type == "text" || elements[i].type == "textarea") {
		elements[i].value = RemoveBad(elements[i].value);
	}
    }
}
/*
function RemoveBad(strTemp) {
	strTemp = strTemp.replace(/\</\>/\"/\'/\%/\;/\(/\)/\&/\+/\-/g,"");
	return strTemp;
}*/

// cookie handling functions

function sessionCookieTest () {
  if (testSessionCookie())
    alert ("Session coookies are enabled")
  else
    alert ("Session coookies are not enabled");
}
function persistentCookieTest () {
  if (testPersistentCookie())
    alert ("Persistent coookies are enabled")
  else
    alert ("Persistent coookies are not enabled");
}

function setSessionCookieTest () {
  if (testSessionCookie()) {
    var myName = document.getElementById('f3CookieName').value;
    var myValue = document.getElementById('f3CookieValue').value;
    writeSessionCookie (myName, myValue);
    alert ("Session cookie written");
  }
  else
    alert ("Sorry - session cookies are currently disabled."); 
}
function setPersistentCookieTest () {  
  if (testPersistentCookie()) {
    var myName = document.getElementById('f4CookieName').value;
    var myValue = document.getElementById('f4CookieValue').value;
    var myPeriod = document.getElementById('f4TimePeriod').value;
    var myOffset = document.getElementById('f4TimeValue').value;
    writePersistentCookie (myName, myValue, myPeriod, myOffset);
    alert ("Persistent cookie written");
  }
  else
    alert ("Sorry - session cookies are currently disabled."); 
}
function readCookieTest () {
  var myCookieName = document.getElementById('f5CookieName').value;
  if (getCookieValue (myCookieName))
    alert ('The value of the Cookie is "' + getCookieValue (myCookieName) + '"')
  else
    alert ("Cookie not found");
}

function deleteCookieTest () {
  var myCookieName = document.getElementById('f6CookieName').value;
  if (!getCookieValue (myCookieName))
    alert ('Cookie does not exist')
  else  {
    deleteCookie (myCookieName);
    alert ("Cookie marked for delete");
  }
}
