/**
 * $Id: index.js,v 1.8 2008/11/18 22:14:19 sudaraka Exp $
 * Created: 10/26/2008
 */

function validateForm(frm, validationFlag){
	var i=validateField(frm.sex, __SELECT_SEX);
	if(i<0) return false;
	var sex=frm.sex[i].value;
	
	if(!validateField(frm.username, __ENTER_UID,/[a-z0-9_\.\-']{5,}/i)) return false;
	if(!validateField(frm.password, __ENTER_PW, /.{6,}/i)) return false;
	if(!validateField(frm.email, __ENTER_EMAIL, /^([a-z0-9_\.\-])+\@(([a-z0-9_\.\-])+\.)+([a-z0-9]{2,4})$/i)) return false;
	if(sex!='G') if(!validateField(frm.fname, __ENTER_FNAME)) return false;
	if(!validateField(frm.lname, __ENTER_LNAME)) return false;
	if(!validateField(frm.city, __ENTER_CITY)) return false;
	if(!validateField(frm.country, __ENTER_COUNTRY)) return false;
	
	var bFlag=false;
	if(!frm.goal) bFlag=true;
	else if(!frm.goal.length || frm.goal.length<1) bFlag=frm.goal.checked;
	else{
		for(var i=0;i<frm.goal.length;i++){
			bFlag=frm.goal[i].checked;
			if(bFlag) break;
		}
	}
	if(!bFlag){
		alert(__SELECT_GOAL);
		return false;
	}
	if(frm.goal[3].checked){
		frm.goal_input.value=removeChar(frm.goal_input.value);
		if(!validateField(frm.goal_input, __ENTER_GOAL)) return false;
	}
	
	if(!validateField(frm.message, __ENTER_MSG)) return false;
	if(!checkLimit(frm.message)) return false;
	
	if(frm.photo.value.length>0) if(!validateField(frm.photoOwner, __SELECT_PHOTO_OWNER)) return false;

	if(!validateField(frm.recaptcha_response_field, "Please enter the reCAPTCHA code")) return false;

	return true;
}

var __validateTimer=null;

function validateUsername(delay){
	var div=document.getElementById('divUsername');
	var txt=document.getElementById('username');
	txt.setAttribute('isValid', 0);
	if(txt.value.length<4){
		div.innerHTML='<span class="err">Your username has to be longer than 4 characters</span>';
		return;
	}
	
	if(delay==undefined) delay=1000;
	
	if(__validateTimer){
		clearTimeout(__validateTimer);
		__validateTimer=null;
	}
	
	__validateTimer=setTimeout('javascript:getUsernameStatus();', delay);
}

function getUsernameStatus(xml, text){
	var div=document.getElementById('divUsername');
	var frm=document.getElementById('frmGift');
	if(frm.username.value.length<4){
		div.innerHTML='<span class="err">Your username has to be longer than 4 characters</span>';
		return;
	}
	
	if(xml){ //Got content, redraw
		xml=xml.getElementsByTagName('username')[0];
		
		if(parseInt(xml.getAttribute('status'))==1){ //Valid
			div.innerHTML=__ID_AVAILABLE.replace('%USER_ID%', xml.getAttribute('value'));
			frm.username.setAttribute('isValid', 1);
		}
		else{
			frm.username.setAttribute('isValid', 0);
			xml=xml.childNodes;
			
			var strHTML='<p>'+__ID_DUPLICATE1;
			if(xml.length>0) strHTML+=__ID_DUPLICATE2;
			strHTML+='</p>';
			for(i=0;i<xml.length;i++){
				if(xml[i].nodeName=='#text') continue;
				
				strHTML+='<a href="javascript: selectUserName(\''+xml[i].firstChild.nodeValue+'\');"><div>'+xml[i].firstChild.nodeValue+'</div></a>';
			}
			div.innerHTML=strHTML;
		}
		
		if(__validateTimer){
			clearTimeout(__validateTimer);
		}
		__validateTimer=null;
	}
	else{
		div.innerHTML=__VALIDATING;
		
		var strUrl='/members/validate.username.php?command=validate_username&username='+frm.username.value+'&name[]='+frm.fname.value+'&name[]='+frm.lname.value;
		var objAjax=new swAjax(strUrl, getUsernameStatus);
	}
}

function selectUserName(username){
	var frm=document.getElementById('frmGift');
	
	frm.username.value=username;
	
	validateUsername(0);
}

function addHoliday(){
	var divC=document.getElementById('divHoliday');
	var divH=document.getElementById('divHolidayHolder');
	var strSeperator='<!-- new holiday set -->';
	var strTmp=divC.innerHTML;
	var intCount=strTmp.split(strSeperator).length;
	var re=/\[0\]/g;
	
	strTmp=divH.innerHTML;
	strTmp=strTmp.replace(re, '['+intCount+']');
	
	divC.innerHTML+=strSeperator+strTmp;
}

function  adjustQuestions(elm){
//	var liDOB=document.getElementById('liDOB');
	var divFName=document.getElementById('divFName');
	var spnLName=document.getElementById('spnLName');
	
	switch(elm.value){
		case 'M':
		case 'F':{
//			liDOB.style.display='block';
			divFName.style.display='block';
			spnLName.innerHTML='Last Name';
			break;
		}
		case 'G':{
//			liDOB.style.display='none';
			divFName.style.display='none';
			spnLName.innerHTML='Group Name';
			break;
		}
	}
}

function checkHoliday(elm){
	var frm=elm.form;
	var div=document.getElementById('divNoHoliday');
	var bEntered=false;
	
	if(frm.holiday_name.length){
		for(var i=0;i<frm.holiday_name.length;i++){
			if(frm.holiday_name[i].value.length>0){
				bEntered=true;
				break;
			}
		}
	}
	else{
		bEntered=(frm.holiday_name.value.length>0);
	}
	
	div.style.display=(bEntered?'none':'block');
}

var __validateTimerPP=null;

function validatePersonalPage(elm){
	var div=document.getElementById('divPersonalName');
	
	div.innerHTML=__CHECKING;
	if(elm.value.length<1) return;
	
	if(__validateTimerPP){
		clearTimeout(__validateTimerPP);
		__validateTimerPP=null;
	}
	
	var name=escape(elm.form.fname.value+elm.form.lname.value);
	__validateTimerPP=setTimeout('javascript:getPersonalName(\''+name+'\');', 1000);
}

function getPersonalName(name, text){
	if(text){ //Got content, redraw
		var div=document.getElementById('divPersonalName');
		
		if(text.length>0) div.innerHTML=__PERSON_NAME.replace('%NAME%', text);
		else div.innerHTML='';
	}
	else{
		var strUrl='/teams/index.php?command=validate_pagename&pagename='+name;
		var objAjax=new swAjax(strUrl, getPersonalName);
	}
}