var currentProductImage = null;

function subFormOnEnter(ev, frm){
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (ev) keycode = ev.which;
	else return true;

	if(keycode == 13){
		frm.submit();
	}

}

function getHttpObject( ) {
	if (typeof XMLHttpRequest != 'undefined') {
		return new XMLHttpRequest();
	}

	try {
		return new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			return new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	}

	return false;
}

function getMouseX(ev) {
	var tempX = 0;
	var IE = document.all?true:false;

	if (IE) { // grab the x-y pos.s if browser is IE
		tempX = event.clientX + document.documentElement.scrollLeft;
	} else {  // grab the x-y pos.s if browser is NS
		tempX = ev.pageX;
	}

	if(tempX < 0){tempX = 0}

	return tempX;
}

function getMouseY(ev) {
	var tempY = 0;
	var IE = document.all?true:false;

	if (IE) { // grab the x-y pos.s if browser is IE
		tempY = event.clientY + document.documentElement.scrollTop;
	} else {  // grab the x-y pos.s if browser is NS
		tempY = ev.pageY;
	}

	if(tempY < 0){tempY = 0}

	return tempY;
}

// JavaScript Document
function isNumeric(val) {
	var re = /^[0-9_]+$/;
	return re.test(val);
}

function isAlpha(val) {
	var re = /^[A-Za-z]+$/;
	return re.test(val);
}

function isEmail(val) {
    if (val.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1) {
	return true;
    } else {
	return false;
    }
}
function form_check(formName){

	if(document.getElementById('hipaa_c').checked){
		var errorMessage = '';
		var list_elms = '';
		var theForm	 = document.getElementById(formName);
		for(i=0; i<theForm.elements.length; i++)
		{
			if(theForm.elements[i].title == 'required' && theForm.elements[i].value == '')
			{
				errorMessage = 'Please check that all required fields are entered';
				list_elms += theForm.elements[i].name + "\n";
			}
		}

		if (document.getElementById('password1').value  != document.getElementById('password2').value){errorMessage = 'Passwords Do Not Match';}
		else
		{
			var pass = document.getElementById('password1').value;
			var pass_count = pass.length;
			var alpha_check = '';
			var numeric_check = '';
			for(i=0; i < pass_count; i++)
			{
				if(isAlpha(pass[i])){alpha_check = 1;}
				if(isNumeric(pass[i])){numeric_check = 1;}
			}
			if (alpha_check != 1 && numeric_check != 1){errorMessage = 'Password Requires atleast 1 Letter and 1 Number';}
			if (pass_count < 6){errorMessage = 'Password Must Be At Least 6 Characters Long';}
		}
		if (document.getElementById('password1').value.length < 6){errorMessage = 'Password Must Be At Least 6 Characters Long';}
		if (document.getElementById('email_address').value  != document.getElementById('email_address2').value){errorMessage = 'Email Addresses Do Not Match';}
		else{if(!isEmail(document.getElementById('email_address').value)){errorMessage = 'Email Addresses Not Valid';}}
		// CAPTCHA
		var captcha = document.getElementById("captcha").value;
		if(captcha.length){
			ajax("GET", "/includes/captcha.php", "captcha="+captcha, function(data){
				if(data == 0){
					errorMessage = 'Captcha Is Incorrect';
				}
				if(errorMessage == ''){theForm.submit()}
				else{document.getElementById('form_error_area').innerHTML = errorMessage;}
			});
		}
		else{
			errorMessage = 'Captcha Required';
		}
		// END CAPTCHA

		// Display of error message has been moved within the captcha ajax
		document.getElementById('form_error_area').innerHTML = errorMessage;


	}else{
		document.getElementById('form_error_area').innerHTML = 'You Must Accept The HIPAA Terms To Continue';
	}
}

function form_check2(formName){

	if(document.getElementById('hipaa_c').checked){
		var errorMessage = '';
		var list_elms = '';
		var theForm	 = document.getElementById(formName);
		for(i=0; i<theForm.elements.length; i++){
			if(theForm.elements[i].title == 'required' && theForm.elements[i].value == ''){
				errorMessage = 'Please check that all required fields are entered';
				list_elms += theForm.elements[i].name + "\n";
			}
		}

		if (document.getElementById('password1').value  != document.getElementById('password2').value){
			errorMessage = 'Passwords Do Not Match';
		}else{
			var pass = document.getElementById('password1').value;
			var pass_count = pass.length;
			var alpha_check = '';
			var numeric_check = '';
			for(i=0; i < pass_count; i++){
				if(isAlpha(pass[i])){alpha_check = 1;}
				if(isNumeric(pass[i])){numeric_check = 1;}
			}
			if (alpha_check != 1 && numeric_check != 1){errorMessage = 'Password Requires atleast 1 Letter and 1 Number';}
			if (pass_count < 6){errorMessage = 'Password Must Be At Least 6 Characters Long';}
		}
		if (document.getElementById('password1').value.length < 6){errorMessage = 'Password Must Be At Least 6 Characters Long';}
		if (document.getElementById('email_address').value  != document.getElementById('email_address2').value){errorMessage = 'Email Addresses Do Not Match';}
		else{
			if(!isEmail(document.getElementById('email_address').value)){errorMessage = 'Email Addresses Not Valid';}
		}

		// CAPTCHA
		var captcha = document.getElementById("captcha").value;
		if(captcha.length){
			ajax("GET", "/includes/captcha.php", "captcha="+captcha, function(data){
				if(data == 0){
					errorMessage = 'Captcha Is Incorrect';
				}
				if(errorMessage == ''){theForm.submit()}
				else{document.getElementById('form_error_area').innerHTML = errorMessage;}
			});
		}
		else{
			errorMessage = 'Captcha Required';
		}
		// END CAPTCHA

		// Display of error message has been also placed within the captcha ajax
		document.getElementById('form_error_area').innerHTML = errorMessage;


	} else {
		document.getElementById('form_error_area').innerHTML = 'You Must Accept The HIPAA Terms To Continue';
	}
}


function swapProductImage(url){
	var container = document.getElementById("prod_img");
	container.src = url;
	/*currentProductImage = new Image();
	currentProductImage.src = url;
	setImageProportions();*/
}

function submitContactForm(){
  var ff = document.form_contact;
  var first = ff.first.value;
  var last = ff.last.value;
  var company = ff.company.value;
  var position = ff.position.value;
  var phone = ff.phone.value;
  var email = ff.email.value;
  var message = ff.message.value;
  first = encodeURIComponent(first.trim());
  last = encodeURIComponent(last.trim());
  company = encodeURIComponent(company.trim());
  phone = encodeURIComponent(phone.trim());
  position = encodeURIComponent(position.trim());
  email = encodeURIComponent(email.trim());
  message = encodeURIComponent(message.trim());

  if(first == "" || last == "" || message == "" || email == ""){
    alert('please check required fields');
    return;
  }

  var params = "first="+first+"&last="+last+"&company="+company+"&phone="+phone+"&position="+position+"&email="+email+"&message="+message;

  var http = getHttpObject();
  http.open("POST", "/ajax/contact.php", true);

  http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http.setRequestHeader("Content-length", params.length);
  http.setRequestHeader("Connection", "close");

  http.onreadystatechange = function( ) {
	  if(http.readyState == 4) {
	    alert(http.responseText);
	  }
  }
  http.send(params);
}

function setImageProportions(isrc){
	if(currentProductImage.complete){
		var largeWidth = currentProductImage.width;
		var largeHeight = currentProductImage.height;
		var scaledWidth = 440;
		var scaledHeight = largeHeight * scaledWidth / largeWidth;
		$(function() {
			$("#zoom01").miniZoomPan({
			sW: scaledWidth,
			sH: scaledHeight,
			lW: largeWidth,
			lH: largeHeight
			})
		});
	}else{
		window.setTimeout(function(){ setImageProportions(); }, 1000);
	}
}

function fetchProfileImage(){
	var params = "a=fetchProfileImage";
	//alert(params);

	var http = getHttpObject();
	http.open("POST", "/ajax/myAccount.php", true);
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Content-length", params.length);
	http.setRequestHeader("Connection", "close");
	http.onreadystatechange = function(){
		if(http.readyState == 4){
			document.getElementById("profile_image_container").innerHTML = http.responseText.trim();
			//alert(http.responseText.trim());
		}
	}

	http.send(params);
}

function recovPass() { // jquery rewrite of recoverPassword() with the new jquery ont he form side as well...
  var email = $( "#ywah_i" ).val().trim();
  var regResult = email.match( "/(^\.)|(\.\.)|(\.$)/" ); // for soem reason, the \.\. are acting as if the . are not escaped?!?
  var failz = false;
/*  until i figure out the \.\. for why it aint working..  this is commented out..
  if ( regResult == null ) {
    alert( "1st null" );
    regResult = email.split( "@", 3 );
    if ( regResult.length == 2 ) {
      alert( "==2 true" );
      if ( regResult[1].match( "/^\./" ) == null ) {
        alert( "2nd null" );
        if ( regResult[0].match( "/\.$/" ) != null ) {
          alert( "failz" );
          failz = true;
        } // else we're good'ish...
        alert( "good" );
      } else {
        failz = true;
      }
    } else {
      failz = true;
    }
  } else {
    failz = true;
  }
*/
  if ( email == "" ) {
    failz = true;
  }
  if ( failz == false ) {
    $.ajax( {
      async : true,
      cache : false,
      data : "emailAddr=" + encodeURIComponent( $( "#ywah_i" ).val().trim() ),
      dataType : "html",
      success : function( dat, stat, xjax ) {
        $( "#rec_pw_notifications" ).html( dat );
      },
      type : "post",
      url : "/ajax/recover_password.php"
    } );
  } else {
    alert( "Please enter a valid email address." );
  }
}

function recoverPassword() {
  var f = document.form_recover_password;
  var emailAddr = f.dest_email_addr.value.trim();
  emailAddr = encodeURIComponent(emailAddr);
  if(emailAddr == ""){
    alert("Please supply an email address");
    return;
  }

	var params = "emailAddr="+emailAddr;
	var http = getHttpObject();
	http.open("POST", "/ajax/recover_password.php", true);
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Content-length", params.length);
	http.setRequestHeader("Connection", "close");
	http.onreadystatechange = function(){
		if(http.readyState == 4){
			document.getElementById("rec_pw_notifications").innerHTML = http.responseText.trim();
		}
	}

	http.send(params);
}

function initDownload(filename) {
    document.getElementById('dlframe').innerHTML = '<iframe height="0" width="0" frameborder="0" src="includes/grabfile.php?filename='+filename+'"></iframe';
}

function ajax(type, file, params, func){

	// Init
		var ajax;
		var data;
		var async = true;

	// Functions
		var readyState = function(f){
			if(ajax.readyState == 4 && ajax.status == 200){ // Ensure action is complete and that the page requested existed
				// Recieve and process
					data = ajax.responseText;
					f(data);

				return true;
			}

		}

	// Create http object
		try{
			//Firefox, Opera 8.0+, Safari
				ajax = new XMLHttpRequest();
		}
		catch(e){
			// Newer IE
				try{
					ajax = new ActiveXObject("Msxml2.XMLHTTP");
				}
				catch(e){
					// Older IE
						try{
							ajax = new ActiveXObject("Microsoft.XMLHTTP");
						}
						catch(e){
							// Error
								return false;
						}
				}
		}

		switch(type){

			case "GET":
				// Open
					ajax.open(type, file+"?"+params, async);
				// Watch
					ajax.onreadystatechange = function(){ readyState(func); };
				// Send
					ajax.send(null);

				break;

			case "POST":
				// Open
					ajax.open(type, file, async);
				// Watch
					ajax.onreadystatechange = function(){ readyState(func) };
				// Headers
					ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
					ajax.setRequestHeader("Content-length", params.length);
					ajax.setRequestHeader("Connection", "close");
					ajax.setRequestHeader("Cache-control", "no-store");
				// Send
					ajax.send(params);

				break;
		}

		return true;
}

