var VALID_IMAGE_TYPES = new Array('JPG','JPEG','GIF','PNG','BMP');

//http://www.pjb.com.au/comp/diacritics.html
var a_ACUTE = '\341';
var e_ACUTE = '\351';
var i_ACUTE = '\355';
var o_ACUTE = '\363';
var u_ACUTE = '\372';

function trim(str)
{
	if(str)
		return str.replace(/^\s*|\s*$/g,"");
	else
		return "";
}

function checkEmpty(field_value,alert_message_en, alert_message_es){
	if(field_value==''){
		if (LANGUAGE=='en')
			alert(alert_message_en);
		else if (typeof(alert_message_es!='undefined'))
			alert(alert_message_es)
		return true;
	}
	return false;
}

function covertEmailField(email){
	var new_email='';	
	for(var i=0;i<email.length;i++){
		if(email.charAt(i) != '+')
			new_email += email.charAt(i);
	}
	return new_email;	
}

function checkEmail(myForm)
{ 	
	//return true;
	//*
	myForm = covertEmailField(myForm);
	flag=false;
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(trim(myForm))) 
	{
			flag=true;
			flag=validate_tldextension(myForm);
	}
		
	if(flag==true){
		return true;	
	} else {
		return false;
	}
	//*/
}

function validate_tldextension(email){
	fullemail=email
	validtldlist="com,net,org,us,in,biz,info,tv,cc,ws,uk,au,name,de,jp,be,at,uk,nz,cn,tw,jobs,am,fm,gs,ms,nu,tc,tk,vg,eu,me"
	validtldlistarr=validtldlist.split(",")
	svalidtldlist="co.uk,me.uk,org.uk,co.nz,co.in,net.nz,org.nz,com.cn,org.cn,net.cn,com.tw,org.tw,idv.tw,templetechnologies.com,exygy.com,com.mx"
	svalidtldlistarr=svalidtldlist.split(",")
	fullemailarr=fullemail.split("@")
	dotcount=0
	//alert(svalidtldlist);
	for(i=0;i<fullemailarr[1].length;i++){
		if(fullemailarr[1].charAt(i)=="."){
			dotcount++;	
		}
	}
	if(dotcount==2){
		tldextention=fullemailarr[1].split(".")
		reqstring=tldextention[1]+"."+tldextention[2]
		flag1=false
		for(i=0;i<svalidtldlistarr.length;i++){
			if(reqstring==svalidtldlistarr[i]){
				flag1=true
			}
		}
	}else if (dotcount==1){
		tldextention=fullemailarr[1].split(".")
		reqstring=tldextention[1]
		flag1=false
		for(i=0;i<validtldlistarr.length;i++){
			if(reqstring==validtldlistarr[i]){
				flag1=true
			}
		}
	}else{
		flag1=false
	}
	if(flag1==true){
		return true
	} else {
		return false
	}	
}

function searchAds(){
	var search_txt = document.getElementById('ClassifiedSearchStr');
	if(checkEmpty(search_txt.value,"Please enter text to search.")){
		search_txt.focus();
		return false;
	}
	return true;
}

function PostSalesAdForm()
{
	var itemtitle = document.getElementById('ItemTitle');
	if(checkEmpty(itemtitle.value,"Please enter a title for your ad.")){
		itemtitle.focus();
		return false;
	}
	
	return true;
}

function checkRegistrationForm(){
	var language = LANGUAGE;
	var name = document.getElementById('UserName');
	var username = document.getElementById('UserUserName');
	var password = document.getElementById('UserPassword');
	var confirm_password = document.getElementById('UserConfirmPassword');
	var termsConditions = document.getElementById('UserTermsConditions');
	
	if(checkEmpty(name.value,"Please enter your name.")){
		name.focus();
		return false;
	}

	if(checkEmpty(username.value,"Email should not be empty.")){
		username.focus();
		return false;
	}

	if(!checkEmail(username.value)){
			if(LANGUAGE=='en')
				alert ('Not a valid email.');
			if(LANGUAGE=='es')
				alert('Correo inv'+a_ACUTE+'lido.');
		username.focus();
		return false;
	}
	
	if(checkEmpty(password.value,"Password should not be empty.")){
		password.focus();
		return false;
	}
	
	if(checkEmpty(confirm_password.value,"Confirm Password should not be empty.")){
		confirm_password.focus();
		return false;
	}
	if(password.value.length<6){
		alert("Password length should be minimum of 6 characters.");
		password.focus();
		return false;
	}
	if(confirm_password.value != password.value){
		alert("Passwords do not match.");
		password.focus();
		return false;
	}
	
	if (termsConditions.checked == false)
		{
			if(language=='en')
				alert ('Please confirm you agree to the terms of use.');
			if(language=='es')
				alert('Por favor confirma que usted esta de acuerdo con los terminos del uso.');

			return false;
		}

	/*if(!document.getElementById('gender_MALE').checked && !document.getElementById('gender_FEMALE').checked)
	{
        alert ( "Please choose your Gender: Male or Female" );
		return false;
	}
	
	 if(!document.getElementById('UserLanguageEn').checked)
	    {
	   if(!document.getElementById('UserLanguageEs').checked)
		  {
		  if(!document.getElementById('UserLanguageBoth').checked)
    		 {
       			 alert ( "Please select your Language." );
			     return false;
    		 }
		  }
	    }

	if(!document.getElementById('age_1').checked && !document.getElementById('age_2').checked && !document.getElementById('age_3').checked && !document.getElementById('age_4').checked && !document.getElementById('age_5').checked)
	{
        alert ( "Please choose your Age" );
		return false;
	}
	
	if(!document.getElementById('marital_status_SINGLE').checked && !document.getElementById('marital_status_MARRIED').checked && !document.getElementById('marital_status_DIVORCED/SEPARATED').checked)
	{
        alert ( "Please choose your Martial Status" );
		return false;
	}
	
	 if(!document.getElementById('UserRaceHi').checked)
		{
		 if(!document.getElementById('UserRaceBlace').checked)
			{
			 if(!document.getElementById('UserRaceAsian').checked)
				{
				 if(!document.getElementById('UserRaceAmerican').checked)
					{
					 if(!document.getElementById('UserRaceOther').checked)
						{
						alert ( "Please select your Race." );
						return false;
						}
					}
				}
			}
		}
	
	if(!document.getElementById('income_1').checked && !document.getElementById('income_2').checked && !document.getElementById('income_3').checked && !document.getElementById('income_4').checked && !document.getElementById('income_5').checked && !document.getElementById('income_6').checked)
	{
        alert ( "Please choose your Income" );
		return false;
	}
	
	if(!document.getElementById('children_YES').checked && !document.getElementById('children_NO').checked)
	{
        alert ( "Please select children" );
		return false;
	}
*/
	return true;
}

function checkRegistrationForm2(){
	var language = LANGUAGE;
	var username = document.getElementById('UserUserName');
	var password = document.getElementById('UserEmailPassword');
	
	var msg;

	if (language=='en') {
		msg = 'Please enter your email address.';
	} else {
		msg = 'Por favor entra su direccion de correo.';
	}

	
	if(checkEmpty(username.value, msg)){
		username.focus();
		return false;
	} 
	
	if (language=='en') {
		msg = 'To open a free account you need to invite at least five friends. Please enter your email password.';
	} else {
		msg = 'Para abrir una cuenta gratis, invita por lo menos cinco amigos.  Entre su clave de correo electr'+o_ACUTE+'nico.';
	}
	
	if(checkEmpty(password.value, msg)){
		password.focus();
		return false;
	}
	
	return true;
	
}


function checkRegistrationForm3(){
	var language = LANGUAGE;
	
	dml=document.forms['register_form'];
	
	len = dml.elements.length;
	var i=0;
	var count=0;
	for( i=0 ; i<len ; i++) {
		var checked =0;
		
		if (dml.elements[i].name=='data[Contacts][]' && dml.elements[i].disabled==false) {
			checked = dml.elements[i].checked;
		}		
		if (checked) count++;
	}
	
	//alert(count);
	
	if (count < 5) {
		if (language=='en') {
			alert('Please select at least 5 friends.');
		} else {
			alert('Por favor, selecciona por lo menos 5 amigos.');	
		}
		return false;
	}
	
	return true; 
	
}

function inviteAll() {
	dml=document.forms['register_form'];
	len = dml.elements.length;
	var i=0;
	var count=0;
	for( i=0 ; i<len ; i++) {
		var checked =0;
		
		if (dml.elements[i].name=='data[Contacts][]') {
			dml.elements[i].checked = 1;
		}		
	}
	
	if (checkRegistrationForm3()) {
		dml.submit();
	}

}


function uncheckInvites() {
	setChecked(false, 'register_form');
}


function setChecked(val,name) {
    var fName = name;
	dml=document.forms[fName];
	len = dml.elements.length;
	var i=0;
	for( i=0 ; i<len ; i++) {
		dml.elements[i].checked=val;
	}
}


function checkLoginForm(){
	var username = document.getElementById('UserUserName');
	var password = document.getElementById('UserPassword');
	
	if(checkEmpty(username.value,"Email should not be empty.")){
		username.focus();
		return false;
	}

	if(!checkEmail(username.value)){
			if(LANGUAGE=='en')
				alert ('Not a valid email.');
			if(LANGUAGE=='es')
				alert('Correo inv'+a_ACUTE+'lido.');
		username.focus();
		return false;
	}
	
	if(checkEmpty(password.value,"Password should not be empty.")){
		password.focus();
		return false;
	}
	return true;
}

function checkMyProfileForm(){
	return true;
}

function checkChangePasswordForm(){
	var old_password = document.getElementById('UserOldPassword');
	var new_password = document.getElementById('UserNewPassword');
	var confirm_password = document.getElementById('UserConfirmPassword');
	
	if(checkEmpty(old_password.value,"Old Password should not be empty.")){
		old_password.focus();
		return false;
	}
	
	if(checkEmpty(new_password.value,"New Password should not be empty.")){
		new_password.focus();
		return false;
	}
	
	if(checkEmpty(confirm_password.value,"Confirm Password should not be empty.")){
		confirm_password.focus();
		return false;
	}
	
	if(new_password.value.length<6){
		alert("Password should be a minimum 6 characters.");
		new_password.focus();
		return false;
	}
	
	if(confirm_password.value != new_password.value){
		alert("Passwords do not match.");
		new_password.focus();
		return false;
	}
	
	return true;
}

function checkForgotPasswordForm(){
	var username = document.getElementById('UserUserName');
	
	if(checkEmpty(username.value,"Email should not be empty.")){
		username.focus();
		return false;
	}

	return true;
}

function emailAdToFriendForm(){
	var friendEmail = document.getElementById('ItemEmailFriend');
	var senderEmail = document.getElementById('ItemEmailSender');
	var emailSubject = document.getElementById('ItemEmailSubject');
	var emailMessage = document.getElementById('ItemMessageEmail');
	
	if(checkEmpty(friendEmail.value,"Friend's Email should not be empty.")){
		friendEmail.focus();
		return false;
	}
	
	if(!checkEmail(friendEmail.value)){
		alert("Not a valid Email.");
			if(LANGUAGE=='en')
				alert ('Not a valid email.');
			if(LANGUAGE=='es')
				alert('Correo inv'+a_ACUTE+'lido.');
		friendEmail.focus();
		return false;
	}
	
	if(checkEmpty(senderEmail.value,"Your Email should not be empty.")){
		senderEmail.focus();
		return false;
	}
	
	if(!checkEmail(senderEmail.value)){
		alert("Not a valid Email.");
		senderEmail.focus();
		return false;
	}
	
	if(checkEmpty(emailSubject.value,"Email Subject should not be empty.")){
		emailSubject.focus();
		return false;
	}
	
	if(checkEmpty(emailMessage.value,"Email Message should not be empty.")){
		emailMessage.focus();
		return false;
	}

	return true;
}

function checkPriceValue(price){
var price_characters = new Array('0','1','2','3','4','5','6','7','8','9','.',',','$');
	for(var i=0;i<price.length;i++){
		var found = false;
		for(var j=0;j<price_characters.length;j++){
			if(price.charAt(i) == price_characters[j]){
				found = true;
				break;
			}				
		}			
	}
	return found;
}

function checkFileType(filename){
	var eles = filename.split('.');
	var type = eles[eles.length-1].toUpperCase();
	var found = false;
	for(var i=0;i<VALID_IMAGE_TYPES.length;i++){
		if(VALID_IMAGE_TYPES[i] == type){
			found = true;
			break;
		}
	}
	if(!found) alert("Please upload .jpg or .png files");
	return found;
	/*
	if(type =='JPG' || type =='JPEG' || type =='PNG' || type =='GIF' || type =='BMP' || type =='TIFF' || type =='GIF' || type =='GIF' || type =='GIF'){
		return true;
	}else{
		alert('Please upload .jpg or .png files');
		return false;
	}
	//*/
}

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	}
	else {
		window.onload = function() {
			if (oldonload) {
			    oldonload();
			}
			func();
		}
	}
}

/* http://www.dustindiaz.com/getelementsbyclass/ */
function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

/* by Jeremy Keith */
function insertAfter(newElement, targetElement) {
	var parent = targetElement.parentNode;
	if (parent.lastChild == targetElement) {
		parent.appendChild(newElement);
	}
	else {
		parent.insertBefore(newElement, targetElement.nextSibling);
	}
}

function buttonEndings() {
	if (!document.getElementsByTagName) {
		return false
	}
	
	var buttons = getElementsByClass("button");
	/* loop through all buttons and attach a child div */
	for (i=0; i < buttons.length; i++) {
		var div = document.createElement("div");
		div.className = "buttonEnding";
		insertAfter(div, buttons[i]);
	}
}
function button_blackEndings() {
	if (!document.getElementsByTagName) {
		return false
	}
	
	var buttons = getElementsByClass("button_black");
	/* loop through all buttons and attach a child div */
	for (i=0; i < buttons.length; i++) {
		var div = document.createElement("div");
		div.className = "button_blackEnding";
		insertAfter(div, buttons[i]);
	}
}

addLoadEvent(buttonEndings);
addLoadEvent(button_blackEndings);
