/**
 * @author Dan Hawkins
 * @author Jay Phillips
 * @copyright Pointnet Solutions 2007
 */

var stime;
var map;

function smoothToTop(){
	var top = ss_getCurrentYPos();
	if(stime != null && stime != undefined){
		clearTimeout(stime);
	}
	if(top > 0){
		iter = 0 - (top/10);
		ss_scrollWindow(iter,0,null)
		stime = setTimeout("smoothToTop()",10);
	}
}

function confirmAction(q,yes,no) {
	if(confirm(q)) {
		yes();
	} else {
		no();
	}
}

function closeDiv(divid){
	Effect.Fade(divid);
}

function emailSent(divid){
	message = "<div style=\"text-align:center;width:100%;margin-top:100px;\"><p>Thank You.</p><p>Your email has been sent.</p><br />";
	message += "<input type=\"button\" id=\"close\" name=\"close\" value=\"Close\" onclick=\"closeDiv('";
	message += divid;
	message += "')\" /></div>";
	document.getElementById(divid).innerHTML = message;
}

// validate registration form

function validateAndSubmitRegForm() {
	retError = "";
	var profile = {
		// required fields
		required: ["firstname", "surname", "email", "pass", "pass_c", "terms"],
		// validated fields
		constraints: {
			firstname: [dojo.validate.isText],
			surname: [dojo.validate.isText], 
			email: [dojo.validate.isEmailAddress]
		},
		// check passwords match
		confirm: {
			pass_c : "pass"
		}
	};

	var results = dojo.validate.check(dojo.byId('registerForm'),profile);
	var humanRead = {
		pass: "Password",
		pass_c: "Password confirmation",
		email: "Email",
		firstname: "Name",
		surname: "Surname",
		terms: "Agreeing to the Terms of Use"
	}
	retMissing = "";
	var missing = results.getMissing();
	for(i=0;i<missing.length;i++){
		retMissing += humanRead[missing[i]] + " is required<br />";
	}
	if(results.isInvalid('email')) {
		retMissing += "Please enter a valid email address<br />";
	}
	if(results.isInvalid('pass_c')) {
		retMissing += "Passwords do not match<br />";
	}
	if(retMissing != undefined && retMissing.length > 0) {
		dojo.byId('warning').innerHTML = retMissing;
	} else {
		xajax_addNewUser(xajax.getFormValues('registerForm'));
	}
	
}

// clear warning messages on form clear button

function clearMsgs() {
	dojo.byId('warning').innerHTML = "";
}


// validate and submit user account details form

function validateAndSubmitUserDetails(classid) {
	var profile = {
		// required fields
		required: ["firstname", "surname", "email"],
		// validated fields
		constraints: {
			firstname: [dojo.validate.isText],
			surname: [dojo.validate.isText], 
			email: [dojo.validate.isEmailAddress],
			phone: [dojo.validate.uk.isPhoneNumber],
			mobile: [dojo.validate.uk.isPhoneNumber]
		}
	};

	var results = dojo.validate.check(dojo.byId('updateUser'),profile);
	var humanRead = {
		email: "Email",
		firstname: "Name",
		surname: "Surname"
	}
	retMissing = "";
	var missing = results.getMissing();
	for(i=0;i<missing.length;i++){
		retMissing += humanRead[missing[i]] + " is required<br />";
	}
	if(results.isInvalid('email')) {
		retMissing += "Please enter a valid email address<br />";
	}
	if(results.isInvalid('phone')) {
		retMissing += "Please enter a valid phone number<br />";
	}
	if(results.isInvalid('mobile')) {
		retMissing += "Please enter a valid mobile number<br />";
	}
	if(retMissing != undefined && retMissing.length > 0) {
		dojo.byId('warning').innerHTML = retMissing;
	} else {
		xajax_classMethodS(classid,'iSaveUser',xajax.getFormValues('updateUser'));
		dojo.byId('warning').innerHTML = "Thank you. Your details were successfully updated";
	}
	
}

// validate and submit the change password form

function validateChangePass(classid) {
	var profile = {
		// required fields
		required: ["currentPass", "newPass", "confPass"],
		// validated fields
		confirm: {
			confPass : "newPass"
		}
	};
	var results = dojo.validate.check(dojo.byId('changePass'),profile);
	var humanRead = {
		currentPass: "Current Password",
		newPass: "New Password",
		confPass: "Confirm New Password"
	}
	retMissing = "";
	var missing = results.getMissing();
	for(i=0;i<missing.length;i++){
		retMissing += humanRead[missing[i]] + " is required<br />";
	}
	if(results.isInvalid('confPass')) {
		retMissing += "Passwords do not match<br />";
	}
	if(retMissing != undefined && retMissing.length > 0) {
		dojo.byId('passMsg').innerHTML = retMissing;
	} else {
		xajax_classMethodS(classid,'updatePass',xajax.getFormValues('changePass'));
		dojo.byId('passMsg').innerHTML = "";
		dojo.byId('currentPass').value = "";
		dojo.byId('newPass').value = "";
		dojo.byId('confPass').value = "";
	}
	
}

// validate Email to Friend Form

function validateEmailToFriend(classid) {
	var profile = {
		// required fields
		required: ["toName", "toEmail", "fromName", "fromEmail"],
		// validated fields
		constraints: {
			toName: [dojo.validate.isText],
			fromName: [dojo.validate.isText], 
			toEmail: [dojo.validate.isEmailAddress],
			fromEmail: [dojo.validate.isEmailAddress]
		}
	};

	var results = dojo.validate.check(dojo.byId('emailFriend'),profile);
	var humanRead = {
		toName: "To (name)",
		toEmail: "To (email)",
		fromName: "From (name)",
		fromEmail: "From (email)"
	}
	retMissing = "";
	var missing = results.getMissing();
	for(i=0;i<missing.length;i++){
		retMissing += humanRead[missing[i]] + " is required<br />";
	}
	if(results.isInvalid('toEmail') || results.isInvalid('fromEmail')) {
		retMissing += "Please use a valid email address<br />";
	}
	if(retMissing != undefined && retMissing.length > 0) {
		dojo.byId('emailFriendMsg').innerHTML = retMissing;
	} else {
		xajax_classMethodS(classid,'sendEmail',xajax.getFormValues('emailFriend'));
		dojo.byId('emailFriendMsg').innerHTML = "";
		closeLargeImg();
	}
}

// Validate ARRANGE VIEWING form
function validateViewingForm(classid) {
	var profile = {
		// required fields
		required: ["name", "tel", "email"],
		// validated fields
		constraints: {
			tel: [dojo.validate.uk.isPhoneNumber],
			email: [dojo.validate.isEmailAddress]
		}
	};

	var results = dojo.validate.check(dojo.byId('arrangeViewing'),profile);
	var humanRead = {
		name: "Name",
		tel: "Telephone",
		email: "Email"
	}
	retMissing = "";
	var missing = results.getMissing();
	for(i=0;i<missing.length;i++){
		retMissing += humanRead[missing[i]] + " is required<br />";
	}
	if(results.isInvalid('tel')) {
		retMissing += "Please enter a valid telephone number<br />";
	}
	if(results.isInvalid('email')) {
		retMissing += "Please enter a valid email address<br />";
	}
	if(retMissing != undefined && retMissing.length > 0) {
		dojo.byId('viewMsg').innerHTML = retMissing;
	} else {
		xajax_classMethodS(classid,'sendEmail',xajax.getFormValues('arrangeViewing'));
		dojo.byId('viewMsg').innerHTML = "";
		closeLargeImg();
	}
}

// validate password reminder form

function validateAndSubmitReminder() {
	retError = "";
	var profile = {
		// required fields
		required: ["email"],
		// validated fields
		constraints: {
			email: [dojo.validate.isEmailAddress]
		}
	};

	var results = dojo.validate.check(dojo.byId('reminderForm'),profile);
	var humanRead = {
		email: "Email Address"
	}
	retMissing = "";
	var missing = results.getMissing();
	for(i=0;i<missing.length;i++){
		retMissing += humanRead[missing[i]] + " is required<br />";
	}
	if(results.isInvalid('email')) {
		retMissing += "Please enter a valid email address<br />";
	}
	if(retMissing != undefined && retMissing.length > 0) {
		dojo.byId('warning').innerHTML = retMissing;
	} else {
		xajax_sendReminder(xajax.getFormValues('reminderForm'));
	}
	
}

// validate and submit survey request form

function validateSurveyForm(classid) {
	var profile = {
		// required fields
		required: ["sv_Name", "sv_Address1", "sv_Town", "sv_PostCode","sv_Email", "sv_Tel"],
		// validated fields
		constraints: {
			sv_Email: [dojo.validate.isEmailAddress],
			sv_Tel: [dojo.validate.uk.isPhoneNumber],
			sv_Mobile: [dojo.validate.uk.isPhoneNumber]
		}
	};

	var results = dojo.validate.check(dojo.byId('surveyRequestForm'),profile);
	var humanRead = {
		sv_Name: "Name",
		sv_Address1: "Address",
		sv_Town: "Town",
		sv_PostCode: "Post Code",
		sv_Tel: "Tel No.",
		sv_Email: "Email"
	}
	retMissing = "";
	var missing = results.getMissing();
	for(i=0;i<missing.length;i++){
		retMissing += humanRead[missing[i]] + " is required. ";
	}
	if(results.isInvalid('sv_Email')) {
		retMissing += "Please enter a valid email address. ";
	}
	if(results.isInvalid('sv_Tel')) {
		retMissing += "Please enter a valid phone number. ";
	}
	if(results.isInvalid('sv_Mobile')) {
		retMissing += "Please enter a valid mobile number. ";
	}
	if(retMissing != undefined && retMissing.length > 0) {
		dojo.byId('warning').innerHTML = retMissing;
	} else {
		xajax_classMethodS(classid,'iSaveSurvey',xajax.getFormValues('surveyRequestForm'));
		xajax_classMethodS(classid,'emailSurveyRequest',xajax.getFormValues('surveyRequestForm'));
		dojo.byId('svContainer').innerHTML = "<p>Thank you.</p><p>Your survey request has been received.</p><p>We will contact you shortly to make arrangements to inspect the property.</p>";
	}
	
}





function checkUser(username) {
	if(username == "") {
 		document.getElementById('username').value = "email address";
 	}
 }

function checkPass(password) {
	if(password == "") {
 		document.getElementById('password').value = "password";
 	}
}

function entEsc(e) {
	var keynum;
	if(window.event) { // IE
		keynum = e.keyCode;
	} else if(e.which) { // Netscape/Firefox/Opera
		keynum = e.which;
	}
	if(keynum && keynum == 13) {
		blur();
		// alert('Enter key was pressed!');
	}
	if(keynum && keynum == 27) {
		blur();
		// alert('Esc key was pressed!');
	}
}


/*********************************************************************
 * DOJO editing stuff
 *********************************************************************/
dojo.require("dojo.validate.*");
dojo.require("dojo.widget.Editor");
editors = {};
function addEditor(myid,mykey){
	var editorArgs = {
    	items: ["bold", "italic", "underline"]
	};
	editors[mykey+myid] = dojo.widget.createWidget("Editor2", editorArgs,dojo.byId(mykey + 'edit'+ myid));
}

function getEditorData(myid,mykey){
	retData = editors[mykey+myid].getEditorContent();
	editors[mykey+myid] = null;
	return retData;
}

/*********************************************************************
 * Large Image Viewing stuff
 *********************************************************************/

var blackOut = 0;

function handleScroll() {
	if(blackOut == 1) {
		_scrollTop = getScrollTop();
		_clientHeight = getClientHeight();
		_clientWidth = getClientWidth();
		
		$('blackOut').style.top = _scrollTop + 'px';
		$('blackOut').style.height = _clientHeight + 'px';
		$('blackOut').style.width = _clientWidth + 'px';
		
		vmidPoint = _scrollTop + (_clientHeight / 2);
		hmidPoint = _clientWidth / 2;
		topPoint = vmidPoint - 240;
		leftPoint = hmidPoint - 255;
		$('largeImg').style.top = topPoint + 'px';
		$('largeImg').style.left = leftPoint + 'px';
	}
}

window.onscroll = handleScroll;
window.onresize = handleScroll;

function showLargeImg() {
	blackOut = 1;
	handleScroll();
	Effect.Appear('blackOut',{to:0.80});
	Effect.Appear('largeImg',{duration: 2});
}

function closeLargeImg() {
	Effect.Fade('blackOut');
	blackOut = 0;
	Effect.Fade('largeImg');
	//retHTML = "&nbsp;";
	//setTimeout("dojo.byId('largeImg').innerHTML = retHTML",1500);
}

