//
// Validation definitions
//

var valFrm = new Array();

valFrm['login'] =			[['username','s'],
				   			['password','s']];

valFrm['new_user'] = 		[['name','s'], 
							['username','s'],							
							['password','s'],
							['retype_password','s'],
							['adr','s'],
							['email','s'],
							['city','s'],
							['country','d'],
							['birthday_day','d'], 
							['birthday_month','d'], 
							['birthday_year','d'],
							['gender','r'],
							['profile_type','d'],
							['terms','c']];
							
valFrm['account'] = 		[['name','s'], 
							['username','s'],
							['email','s'],
							['city','s'],
							['country','d'],
							['birthday_day','d'], 
							['birthday_month','d'], 
							['birthday_year','d'],
							['gender','r'],
							['profile_type','d'],
							['terms','c']];							

valFrm['invite'] =			[['name','s'],
							['email','s'],
							['msg','s']];

valFrm['new_event'] =		[['date','s'],
							['time','s'],
							['title','s'],
							['location','s'],
							['desc','s']];

valFrm['send_to_friend'] =	[['to','d'],
							['msg','s']];

valFrm['education'] =		[['school','s'],
							['location','s'],
							['dates','s']];

valFrm['career'] =			[['company','s'],
							['title','s'],
							['location','s'],
							['dates','s']];

valFrm['new_picture'] =		[['upload_image','u']];

valFrm['new_video'] =		[['category','d'],
							['upload_image','u']];

valFrm['new_track'] =		[['title','s'],
							['upload_cover','u'],
							['upload_track','u']];	
							
valFrm['new_bulletin'] =	[['subject','s'],
							['body','s']];

valFrm['mail_compose'] =	[['subject','s'],
							['body','s']];					

valFrm['new_comment'] =		[['about','s']];

valFrm['new_picture_comment'] =	[['about','s']];


//
// Validate function
//

function validateFrm(frmObj,fid) {
	var frmElm;
	var errorMsg = '';
	var valArr = valFrm[fid];
	if (valArr==undefined) return true;
	
	for (var eCnt=0; eCnt<valArr.length&&errorMsg==''; eCnt++) {
		eval('frmElm = frmObj.'+valArr[eCnt][0]);
		// Check pending on type
		switch(valArr[eCnt][1]) {
		case "s": // String
			errorMsg = chkStr(frmElm.value);		
			break;
		case "u": // Upload
			errorMsg = chkUpload(frmElm.value);		
			break;				
		case "d": // Dropdown
			errorMsg = chkSelect(frmElm);		
			break;	
		case "r": // Radio Group
			errorMsg = chkRadio(frmElm);		
			break;		
		case "c": // Checkbox
			errorMsg = chkCheckbox(frmElm);		
			break;											
		}
	}
	
	if (errorMsg!='') {
		alert(errorMsg);
		if (frmElm.type!=undefined) frmElm.focus();
		return false;	
	}
	
	return true;
}

//
// Element check functions
//

function chkStr(str) {
	if (str.length>0) return '';
	else return 'Please fill out this field.';
}

function chkUpload(str) {
	if (str.length>0) return '';
	else return 'Please upload a file from this field.';
}

function chkSelect(elm) {
	var selIndex = elm.selectedIndex;
	var val = elm.options[selIndex].value;
	if (selIndex>0&&val.length>0) return '';
	else return 'Please choose an option from this dropdown.';
}

function chkRadio(radioGrp) {
	var selRadio = false;
	for (var rgCnt=0; rgCnt<radioGrp.length; rgCnt++) {
		if (radioGrp[rgCnt].checked) 
			selRadio = true;
	}
	if (selRadio) return '';
	else return 'Please choose an option from the radiogroup.';
}

function chkCheckbox(elm) {
	if (elm.checked) return '';
	else return 'Please check the box.';	
}

//
// Server error checking
//

function catchError() {
	var queryStr = window.location.search.substring(1);
	var errorPos = queryStr.indexOf('error');
	if (errorPos != -1) {
		var errorStr = queryStr.substr(errorPos+6);
		alert(decodeURIComponent(errorStr));
	}
}