//////////////////////////////////////////////////////////
// this function will go through a form and build       //
// a post string from all the lements and there values  //
//////////////////////////////////////////////////////////
function getFormValues(id){
	fobj = document.getElementById(id)
	var str = "";
	for(var i = 0;i < fobj.elements.length;i++){
		switch(fobj.elements[i].type){
			case "checkbox":
				str += fobj.elements[i].name + "=" + escape(fobj.elements[i].checked) + "&";
			break;
			default:
				str += fobj.elements[i].name + "=" + URLEncode(fobj.elements[i].value) + "&";
		}
	}
	str = str.substr(0,(str.length - 1));
	return str;
}

function URLEncode(clearString) {
	return ascii2hex(clearString);
 /* var output = '';
  var x = 0;
  clearString = clearString.toString();
  var regex = /(^[a-zA-Z0-9_.]*)/;
  while (x < clearString.length) {
    var match = regex.exec(clearString.substr(x));
    if (match != null && match.length > 1 && match[1] != '') {
    	output += match[1];
      x += match[1].length;
    } else {
      if (clearString[x] == ' ')
        output += '+';
      else {
        var charCode = clearString.charCodeAt(x);
        var hexVal = charCode.toString(16);
        output += '%' + hexVal.toUpperCase();
      }
      x++;
    }
  }
  return output;*/
  
}

document.getElementsByClassName = function(clsName){
	var retVal = new Array();
	var elements = document.getElementsByTagName("*");
	for(var i = 0;i < elements.length;i++){
		if(elements[i].className.indexOf(" ") >= 0){
			var classes = elements[i].className.split(" ");
			for(var j = 0;j < classes.length;j++){
				if(classes[j] == clsName)
					retVal.push(elements[i]);
			}
		}
		else if(elements[i].className == clsName)
			retVal.push(elements[i]);
	}
	return retVal;
}

/////////////////
// Cookie jazz //
/////////////////
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
function eraseCookie(name) {
	createCookie(name,"",-1);
}

// checks to see if class1 is active if not it changes to class 2 and vice versa
function toggleClass( element, class1, class2 ){
	var classname = document.getElementById( element ).className;
	if (classname == class1){
		classname = class2;
	} else {
		classname = class1;
	}
	document.getElementById(element).className = classname;
}

// makes element hidden/visible
function toggleDisplay( element ){
	var display = document.getElementById( element ).style.display;
	if ((display == "block")||(display == "undefined")||(display == "")){
		document.getElementById(element).style.display = 'none';
	} else {
		document.getElementById(element).style.display = 'block'
	}
}

// selects / deselects a row
function toggleRow( element ){
	var checkbox = element + '_check';
	if (document.getElementById(checkbox).checked){
		document.getElementById(checkbox).checked = 'false';
	} else {
		document.getElementById(checkbox).checked = 'true';
	}
}

// checks or unchecks all checkboxes in a page
function checkAll(master){
	var checked = master.checked;
	var col = document.getElementsByTagName("INPUT");
	for (var i=0;i<col.length;i++) {
		col[i].checked=checked;
	}
}

// ascii to hex
function ascii2hex(text){
	var hex=''
	var i=0
	for (i=0; i<text.length; i++){
		hex += '%'+hexfromdec( text.charCodeAt(i) )
	}
	return hex
}

// ------------ begin conversion routine ----------

// these are the functions that actually convert
// from decimal ascii to hexidecimal ascii code

function hexfromdec(num) {
        if (num > 65535) { return ("err!") }
        first = Math.round(num/4096 - .5);
        temp1 = num - first * 4096;
        second = Math.round(temp1/256 -.5);
        temp2 = temp1 - second * 256;
        third = Math.round(temp2/16 - .5);
        fourth = temp2 - third * 16;
        return (""+getletter(third)+getletter(fourth));
}

function getletter(num) {
        if (num < 10) {
                return num;
        }
        else {
            if (num == 10) { return "A" }
            if (num == 11) { return "B" }
            if (num == 12) { return "C" }
            if (num == 13) { return "D" }
            if (num == 14) { return "E" }
            if (num == 15) { return "F" }
        }
}

// --------------- end conversion routine --------------
//-->

function validateEmail(str){
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
		return false
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		return false
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false
	}
	if (str.indexOf(at,(lat+1))!=-1){
		return false
	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false
	}
	if (str.indexOf(dot,(lat+2))==-1){
		return false
	}
	if (str.indexOf(" ")!=-1){
		return false
	}
	return true					
}