

var form = "";
var submitted = false;
var error = false;
var error_message = "";
var nums="0123456789";
var letters="abcdefghyjklmnopqrstuvwxyz";
var letterCaps="ABCDEFGHYJKLMNOPQRSTUVWXYZ";
var isNN = (navigator.appName.indexOf("Netscape")!=-1);

// Images management
function MM_findObj(n, d) { //v4.01
	var p,i,x;
	if(!d) d=document;
	if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
	}
	if(!(x=d[n])&&d.all) x=d.all[n];
	for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n);
	return x;
}
function MM_swapImage() { //v3.0
	var i,j=0,x,a=MM_swapImage.arguments;
	document.MM_sr=new Array;
	for(i=0;i<(a.length-2);i+=3)
	if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x;
	if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr;
	for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
	var d=document;
	if(d.images){
	if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=MM_preloadImages.arguments;
	for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

// Forms validation
function check_input(field_name, field_size, message) {
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    var field_value = form.elements[field_name].value;

    if (field_value == '' || field_value.length < field_size) {
      error_message = error_message + "\n* " + message;
      error = true;
    }
  }
}
function check_radio(field_name, message) {
  var isChecked = false;

  if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    var radio = form.elements[field_name];

    for (var i=0; i<radio.length; i++) {
      if (radio[i].checked == true) {
        isChecked = true;
        break;
      }
    }

    if (isChecked == false) {
      error_message = error_message + "\n* " + message;
      error = true;
    }
  }
}
function check_checkbox(field_name, message) {
  var isChecked = false;

  if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    var box = form.elements[field_name];

    if (box.checked == false) {
      error_message = error_message + "\n* " + message;
      error = true;
    }
  }
}
function check_select(field_name, field_default, message) {
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    var field_value = form.elements[field_name].value;

    if (field_value == field_default) {
      error_message = error_message + "\n* " + message;
      error = true;
    }
  }
}
function check_password(field_name_1, field_name_2, field_size, message_1, message_2) {
  if (form.elements[field_name_1] && (form.elements[field_name_1].type != "hidden")) {
    var password = form.elements[field_name_1].value;
    var confirmation = form.elements[field_name_2].value;

    if (password == '' || password.length < field_size) {
      error_message = error_message + "\n* " + message_1;
      error = true;
    } else if (password != confirmation) {
      error_message = error_message + "\n* " + message_2;
      error = true;
    }
  }
}
function check_password_new(field_name_1, field_name_2, field_name_3, field_size, message_1, message_2, message_3) {
  if (form.elements[field_name_1] && (form.elements[field_name_1].type != "hidden")) {
    var password_current = form.elements[field_name_1].value;
    var password_new = form.elements[field_name_2].value;
    var password_confirmation = form.elements[field_name_3].value;

    if (password_current == '' || password_current.length < field_size) {
      error_message = error_message + "\n* " + message_1;
      error = true;
    } else if (password_new == '' || password_new.length < field_size) {
      error_message = error_message + "\n* " + message_2;
      error = true;
    } else if (password_new != password_confirmation) {
      error_message = error_message + "\n* " + message_3;
      error = true;
    }
  }
}

// Password measurements
function haveNums(text) {
   for(i=0; i<text.length; i++) {
      if (nums.indexOf(text.charAt(i),0)!=-1) {
         return 1;
      }
   }
   return 0;
}
function haveLetters(text) {
   text = text.toLowerCase();
   for(i=0; i<text.length; i++) {
      if (letters.indexOf(text.charAt(i),0)!=-1) {
         return 1;
      }
   }
   return 0;
} 
function haveLower(text) {
   for(i=0; i<text.length; i++) {
      if (letters.indexOf(text.charAt(i),0)!=-1) {
         return 1;
      }
   }
   return 0;
} 
function haveCaps(text) {
   for(i=0; i<text.length; i++) {
      if (letterCaps.indexOf(text.charAt(i),0)!=-1) {
         return 1;
      }
   }
   return 0;
} 
function securePass(passwd) {
	var secured = 0;
	if (passwd.length!=0) {
		if(haveNums(passwd) && haveLetters(passwd)) {
			secured += 30;
		}
		if(haveLower(passwd) && haveCaps(passwd)) {
			secured += 30;
		}
		if(passwd.length >= 4 && passwd.length <= 5) {
			secured += 10;
		} else {
			if (passwd.length >= 6 && passwd.length <= 8) {
				secured += 30;
			} else {
				if (passwd.length > 8){
					secured += 40;
				}
			}
		}
	}
	return secured				
}
function displaySecurityStrength(passwd, content) {
	secured = securePass(passwd);
	document.getElementById(content).innerHTML = '<div style="height: 10px; width: ' + secured*1.5 + 'px; background: url(images/passStrength.gif) no-repeat 0 0;">&nbsp;</div>';
}

// Miscellaneous functions
function autoTab(input,len, e) {
    var keyCode = (isNN) ? e.which : e.keyCode;
    var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
    if(input.value.length >= len && !containsElement(filter,keyCode)) {
        input.value = input.value.slice(0, len);
        input.form[(getIndex(input)+1) % input.form.length].focus();
}
function containsElement(arr, ele) {
    var found = false, index = 0;
    while(!found && index < arr.length)
    if(arr[index] == ele)
    found = true;
    else
    index++;
    return found;
}
function getIndex(input) {
    var index = -1, i = 0, found = false;
    while (i < input.form.length && index == -1)
    if (input.form[i] == input)index = i;
    else i++;
    return index;
    }
    return true;
}
function nuevoAjax() {
      var xmlhttp=false;
      try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch (e) {
       try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
         }
         catch (E) {
         xmlhttp = false;
        }
      }
      if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
       xmlhttp = new XMLHttpRequest();
      }
      return xmlhttp;
}

function regenerateCaptcha() {
	var captchaCode = document.getElementById('captchaCode');
	captchaCode.innerHTML = '<center>Loading...</center>';
	ajax=nuevoAjax();
    ajax.open("GET", "index.php?plugin=Contact&op=regenerateCaptcha",true);
    ajax.onreadystatechange = function() {
        if (ajax.readyState == 4) {
	        captchaCode.innerHTML = ajax.responseText;
        }
    }
    ajax.send(null);
}
function captchaHelp() {
  	captchaWindow = window.open("data/captchaHelp.html", "captchaWindow", "scrollbars,resizable,height=500,width=450");
 	captchaWindow.focus();	
}
function openHelp(url, width, height) {
  	helpWindow = window.open(url, "helpWindow", "scrollbars,resizable,height="+height+",width="+width);
 	helpWindow.focus();
}
function openShowRoom(item) {
 	thisWindow = window.open("index.php?plugin=Products&op=itemsTheater&id="+item, "showRoom", "scrollbars,resizable,height=600,width=800");
 	thisWindow.focus();
}
function openWindow(url, name, width, height) {
	if(!name) name = "popupWin";
	if(!width) width = 500;
	if(!height) height = 400;
	
 	$openedWindow = window.open(url, name,"scrollbars, resizable,height="+height+",width="+width);
 	$openedWindow.focus();
}
function deleteConfirm(id) {
	var answer = confirm('Are you sure you want to DELETE this item from the shopping cart?')
	if (answer) {
	    location.href='index.php?plugin=Cart&op=updateCart&remove='+ id;
    }
}
function goDelete(nodes2) {
	var len2 = nodes2.length;
	if(len2 == undefined) alert('Please make your selection form the list.');
	for (var i = 0; i < len2; i++) {
		ajax=nuevoAjax();
    	ajax.open("GET", 'index.php?plugin=Mailbox&op=deleteMsg&id=' + o.getCellValue(nodes2[i], 0), true);
    	ajax.onreadystatechange=function() {}
    	ajax.send(null);
	}
    o.removeRange(o.getSelectedRange());
}
function changeQty(qty, id) {
    $.getJSON('index.php?plugin=Cart&op=changeQty&id=' + id + '&qty=' + qty, function(json) {
        $('#' + id + '_total').html(json.item_total);
        $('#totalDiv').html(json.total);
        $('#estimatedDiv').html(json.estimated);
    });
}
function calcUserShipping(method) {
	var content = document.getElementById('priceScreen');
	len = document.shippingForm.address.length
	for (i = 0; i <len; i++) {
		if (document.shippingForm.address[i].checked) {
			chosen = document.shippingForm.address[i].value
		}
	}
	content.innerHTML = '<img src="images/loading.gif" /> Calculating...';
	ajax=nuevoAjax();
	ajax.open("GET", "index.php?plugin=Cart&op=priceUserShiping&address="+ chosen +"&method="+ method,true);
	ajax.onreadystatechange=function() {
	    if (ajax.readyState==4) {
	        content.innerHTML = ajax.responseText;
	    }
	}
	ajax.send(null);
}
function calcShipping(method) {
	var content = document.getElementById('priceScreen');
	var value = document.shippingForm.shippingMethod.value;
	var country = document.shippingForm.shippingCountry.value;
	var zipcode = document.shippingForm.shippingZipcode.value;
	content.innerHTML = '<img src="images/loading.gif" /> Calculating...';
	if(zipcode == '') content.innerHTML = "0.00 <b style=\"color: red;\">Error calculating shipping, enter your zip/postal code.</b>";
	else {
	    ajax=nuevoAjax();
	    ajax.open("GET", "index.php?plugin=Cart&op=priceShiping&country="+ country +"&zip="+ zipcode +"&method="+ method,true);
	    ajax.onreadystatechange=function() {
	        if (ajax.readyState==4) {
	         	content.innerHTML = ajax.responseText;
	        }
	    }
	    ajax.send(null);
	}
}
function changeState(country, stateName) {
	var content = document.getElementById('stateSpot');
    ajax=nuevoAjax();
    ajax.open("GET", "index.php?plugin=Members&op=loadStates&country="+ country +"&name="+ stateName,true);
    ajax.onreadystatechange=function() {
        if (ajax.readyState==4) {
         	content.innerHTML = ajax.responseText;
        }
    }
    ajax.send(null);
}
function markImage(theID, image) {
	var insObj = document.getElementById(theID);
	var insInput = document.getElementById('selectedImage');
	var divs = document.getElementsByTagName('DIV');
	for(var no=0; no<divs.length; no++) {
		if(divs[no].className == 'imageBoxHighlighted' ) {
			divs[no].className = 'imageBox';		
		}
	}
	insObj.className = 'imageBoxHighlighted';
	insInput.value = image;
}
function imageFields(imageID, value) {
	var imgRe = /^.+\.(jpg|jpeg|gif|png)$/i;
	var content = document.getElementById(imageID);
	if (value.search(imgRe) == -1) {
		value = '';
		content.src = 'images/defaultArtImage.gif';
		alert('Only images allow with the following extension: JPG, PNG or GIF');
	} else content.src = 'images/selectedArtImage.gif';
}
function deleteAddress(id) {
	if(id) {
		var answer = confirm('Are you sure you want to DELETE this address?')
	  	if(answer) location.href='index.php?plugin=Members&op=deleteAddress&id='+id;
	}
}
function confirmExec(url, div, text) {
	var container = document.getElementById(div);
    var answer = confirm(text)
    if(answer) {
	    ajax = nuevoAjax();
	    ajax.open("GET", url, true);
	    ajax.onreadystatechange = function() {
	        if (ajax.readyState == 4) {
	            container.innerHTML = ajax.responseText
	        }
	    }
	    ajax.send(null);
    }
}
function confirmProcess(op, text) {
    var answer = confirm(text)
    if(answer) {
    	location.href=op;
    }
}
function confirmFrom(text) {
	if (submitted == true) {
		alert("This form has already been submitted. Please press Ok and wait for this process to be completed.");
		return false;
	}
    var answer = confirm(text);
    if(answer) {
    	submitted = true;
    	return true;
    } else { 
    	return false;
   	}
}
function checkAll(id, name, flag) {
   if(flag == 0) $("form#" + id + " INPUT[@name=" + name + "][type='checkbox']").attr('checked', false);
   else $("form#" + id + " INPUT[@name=" + name + "][type='checkbox']").attr('checked', true);
}
function blogSelectLabel(label) {
	var labelInput = document.getElementById("post-labels");
	if(!labelInput) return;
	var curVal = Trim(labelInput.value);

	if (curVal == "") {
		abelInput.value = label.innerHTML;
	} else { // Remove excess whitespace
		var newLabel = Trim(label.innerHTML);
		var labels = curVal.split(',');
		var found = false;
	    for (var i=0; i < labels.length; i++) { // See if the label already is in the text box
			labels[i] = Trim(labels[i]);
			if (labels[i] == newLabel) found = true;
	    }
	    if (!found) { // If not, add it.
	      labels[labels.length] = newLabel;
	    }
	    var newLabels = new Array();
	    for (var i=0; i < labels.length; i++) { // Remove any whitespace-only elements from the array.
			if (labels[i] != "") {
				newLabels[newLabels.length] = labels[i];
			}
	    }
		labelInput.value = newLabels.join(", ") + ", "; // Put it back together.
	}
}
