  function openWin(page,winName,xWidth,yHeight){
  	window.open(page,winName,'width='+xWidth+',height='+yHeight+',toolbar=no,location=no,status=no,menubar=no,scrollbars=Yes,resizable=Yes,top=0,left=0');
  }
  function openPic(page,winName,xWidth,yHeight){
  	window.open(page,winName,'width='+xWidth+',height='+yHeight+',toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,top=0,left=0');
  }
  function openWith(page,winName,xWidth,yHeight){
	window.open(page,winName,'width='+xWidth+',height='+yHeight+',toolbar=yes,location=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,top=0,left=0');
  }
  function search(where){
        window.location=('results.asp?keyword='+where);
  }


function prodSwap(newImg)
{
   document.prod.src="images/" + newImg;
}

  function valLogin(myForm) {
	if (myForm.username.value == "" || myForm.username.value.indexOf('@', 0) == -1 || myForm.username.value.indexOf('.', 0) == -1){
	 alert("Sorry " + myForm.username.value + " is not a valid username/email!");
	 myForm.username.focus();
	 return false;
	}
	if (myForm.password.value == ""){
	 alert("Please enter your password!");
	 myForm.password.focus();
	 return false;
	}
    }


//confirm deletion
function confirmMe(msg)
{
var agree=confirm(msg);
if (agree)
	return true ;
else
	return false ;
}


//--------------RATE IT
function valRating() {
   var user_input="";
   for (i=0;i<document.FormRate.Rating.length;i++)
   {
	if (document.FormRate.Rating[i].checked)
	{
		user_input = document.FormRate.Rating[i].value;
	}
   }
   if (user_input.length == 0) {
		 alert("Please select a rating!");
		 return false;
   }
  rateme();
}
function rateme() 
{ 
    window.open("","myNewWin","width=450,height=175,toolbar=0"); 
    var a = window.setTimeout("document.FormRate.submit();",500); 
} 


//--------------COMPARE IT
function valCompare() {
   var user_input="";
   var mCount=0;
   for (i=0;i<document.FormCompare.Compare.length;i++)
   {
	if (document.FormCompare.Compare[i].checked)
	{
		user_input = document.FormCompare.Compare[i].value;
		mCount += 1;
	}
   }
   
   if (mCount <= 1) {
   	alert("You need to select at 2 or 3 products.");
   	return false;
   }
   if (mCount > 3) {
   	alert("You have selected too many product. You need to select at 2 or 3 products.");
   	return false;
   }
   
   document.FormCompare.submit()
}


//--------------validation
// email
function checkEmail (strng) {
var error="";
if (strng == "") {
   error = "You didn't enter an email address.\n";
}

    var emailFilter=/^.+@.+\..{2,3}$/;
    if (!(emailFilter.test(strng))) { 
       error = "Please enter a valid email address.\n";
    }
    else {
//test email for illegal characters
       var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
         if (strng.match(illegalChars)) {
          error = "The email address contains illegal characters.\n";
       }
    }
return error;    
}


// phone number - strip out delimiters and check for 10 digits
function checkPhone (strng) {
var error = "";
if (strng == "") {
   error = "You didn't enter a phone number.\n";
}

var stripped = strng.replace(/[\(\)\.\-\ ]/g, ''); //strip out acceptable non-numeric characters
    if (isNaN(parseInt(stripped))) {
       error = "The phone number contains illegal characters.";
  
    }
    if (!(stripped.length == 10)) {
	error = "The phone number is the wrong length. Make sure you included an area code.\n";
    } 
return error;
}


// password - between 6-8 chars, uppercase, lowercase, and numeral
function checkPassword (strng) {
var error = "";
if (strng == "") {
   error = "You didn't enter a password.\n";
}

    var illegalChars = /[\W_]/; // allow only letters and numbers
    
    if ((strng.length < 6) || (strng.length > 8)) {
       error = "The password is the wrong length.\n";
    }
    else if (illegalChars.test(strng)) {
      error = "The password contains illegal characters.\n";
    } 
    else if (!((strng.search(/(a-z)+/)) && (strng.search(/(A-Z)+/)) && (strng.search(/(0-9)+/)))) {
       error = "The password must contain at least one uppercase letter, one lowercase letter, and one numeral.\n";
    }  
return error;    
}    


// username - 4-10 chars, uc, lc, and underscore only.
function checkUsername (strng) {
var error = "";
if (strng == "") {
   error = "You didn't enter a username.\n";
}


    var illegalChars = /\W/; // allow letters, numbers, and underscores
    if ((strng.length < 4) || (strng.length > 10)) {
       error = "The username is the wrong length.\n";
    }
    else if (illegalChars.test(strng)) {
    error = "The username contains illegal characters.\n";
    } 
return error;
}       


// non-empty textbox
function isEmpty(strng, str) {
var error = "";
  if (strng.length == 0) {
     error = "The mandatory text area '"+str+"' has not been filled in.\n"
  }
return error;	  
}

// was textbox altered
function isDifferent(strng) {
var error = ""; 
  if (strng != "Can\'t touch this!") {
     error = "You altered the inviolate text area.\n";
  }
return error;
}

// exactly one radio button is chosen
function checkRadio(checkvalue) {
var error = "";
   if (!(checkvalue)) {
       error = "Please check a radio button.\n";
    }
return error;
}

// valid selector from dropdown list
function checkDropdown(choice) {
var error = "";
    if (choice == 0) {
    error = "You didn't choose an option from the drop-down list.\n";
    }    
return error;
}    

// check checkbox
function checkCheckbox(bool) {
var error = "";
    if (bool == false) {
    error = "You have to agree to the Term & Conditions\n";
	}
return error;
}


// compare
function compare(strng1, strng2) {
var error="";
  if (strng1 != strng2){
    error = "Confirmation field is different\n";
  }	
return error;    
}

function dotag(tagclass, tagstyle) {
 zxcobjs=document.getElementsByTagName("TR");
 for (zxc0=0;zxc0<zxcobjs.length;zxc0++){
  if (zxcobjs[zxc0].className==tagclass){
  	zxcobjs[zxc0].style.cssText=tagstyle;
  }
	}
}


	    //AJAX type request
            var http_request = false;
            var Col = '';

            function makeRequest(page, order) {
                http_request = false;
                Col = order;
                if (window.XMLHttpRequest) { // Mozilla, Safari,...
                    http_request = new XMLHttpRequest();
                    if (http_request.overrideMimeType) {
                        http_request.overrideMimeType('text/xml');
                    }
                } else if (window.ActiveXObject) { // IE
                    try {
                        http_request = new ActiveXObject("Msxml2.XMLHTTP");
                    } catch (e) {
                        try {
                        http_request = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e) {}
                    }
                }

                if (!http_request) {
                    alert('Giving up :( Cannot create an XMLHTTP instance');
                    return false;
                }
                http_request.onreadystatechange = showContents;
                http_request.open('GET', page, true);
                http_request.send(null);
            }

            function showContents() {

                if (http_request.readyState == 4) {
                    if (http_request.status == 200) {
                        var xmldoc = http_request.responseXML;
                        var root_node = xmldoc.getElementsByTagName('root').item(0);
                        
                         root_node=xmldoc.getElementsByTagName('*');
			 for (x=0;x<root_node.length;x++){
			  if (document.getElementById(root_node[x].getAttribute("id"))){
			    try {
			      if (!root_node[x].firstChild.data) {
			    	document.getElementById(root_node[x].getAttribute("id")).innerHTML='';
			      } else {
			        document.getElementById(root_node[x].getAttribute("id")).innerHTML=root_node[x].firstChild.data;
			      }
			    } catch (e) {
				document.getElementById(root_node[x].getAttribute("id")).innerHTML='';
			    }
			  }
			 }
			
			Col = '';
			
                    } else {
                    	
                        alert('There was a problem with the request.');
                    }
                }
            }

