var CheckTypes = new Array('select', 'input', 'textarea');
var SubmitTypes = new Array('Submit', 'Pending', 'Approve', 'Reject', 'SubmitChanges', 'PendingChanges', 'ApproveChanges', 'RejectChanges');
var ImageDimW = 780;//880;
var ImageDimH = 480;//550;
var CurrentCrop = '';
var CurrentCropObj;
var CurrentCropDim = new Array();
var InitSlideImages = new Array();
var JCropAPI = new Array();

window.addEvent('domready', function() {
									 
	//REVEAL / HIDE SIGNIN OR FULL REG FORM

	ajaxLoginSetup();

	if($('paymentAccountForm') != null){
		$('paymentAccountForm').addEvent('submit', function(e){
			e.stop();
			ajaxPaymentSend(this);
		});
	}
	if($('paymentForm') != null){
		$('paymentForm').addEvent('submit', function(e){
			e.stop();
			ajaxPaymentSend(this);
		});
	}
	setCheckForms(document);
});

function ajaxLoginSetup(){
	if($('alreadyAMember') != null && $('notAlreadyAMember') != null){
		fullFormBoxEl = $($('alreadyAMember').getAttribute('rel'));
		loginFormBoxEl = $($('notAlreadyAMember').getAttribute('rel'));
		
		loginFormBoxEl.trgtHeight = 2000; //loginFormBoxEl.offsetHeight + 50;
		fullFormBoxEl.trgtHeight = 2000; //fullFormBoxEl.offsetHeight + 50;
		if( $('favouriteForm') != null){
			fullFormBoxEl.setStyle('height', 0);
			$('alreadyAMemberBox').addClass('hidden');
		}else{
			loginFormBoxEl.setStyle('height', 0);
		}
		
		$('loginForm').set('action', '/index.php?class=user&action=login&view=ajax&tmpl=maincomponent');
		
		$('alreadyAMember').set('href', '#');
		$('alreadyAMember').addEvent('click', function(){
			$('loginForm').reset();
			$('alreadyAMemberBox').addClass('hidden');
			$($('notAlreadyAMember').getAttribute('rel')).removeClass('hidden');
			$($('notAlreadyAMember').getAttribute('rel')).tween('height', loginFormBoxEl.trgtHeight);
			$($('alreadyAMember').getAttribute('rel')).tween('height', 0);
			return false;
		 });
		$('notAlreadyAMember').set('href', '#');
		$('notAlreadyAMember').addEvent('click', function(){
			$('alreadyAMemberBox').removeClass('hidden');
			$($('alreadyAMember').getAttribute('rel')).tween('height', fullFormBoxEl.trgtHeight);
			$($('notAlreadyAMember').getAttribute('rel')).tween('height', 0);
			$('loginForm').reset();
			return false;
		 });
	}
	
	//REVEAL HIDE FORGOT PASSWORD
	if($('forgotPassword') != null){
		$('forgotPasswordBox').trgtHeight = 2000; //$('forgotPasswordBox').offSetHeight
		$('loginFormBoxInner').trgtHeight = 2000; //$('loginFormBoxInner').offSetHeight
		$('forgotPasswordBox').setStyle('height', 0);
		
		$('forgotPassword').addEvent('click', function(){
			$('loginForm').reset();
			$('forgotpasswordForm').reset();
			$('forgotPasswordBox').tween('height', $('forgotPasswordBox').trgtHeight);
			$('loginFormBoxInner').tween('height', 0);
		});
		
		$('forgotPasswordCancel').addEvent('click', function(){
			$('forgotPasswordBox').tween('height', 0);
			$('loginFormBoxInner').tween('height', $('loginFormBoxInner').trgtHeight);
			$('loginForm').reset();
			$('forgotpasswordForm').reset();
		});
		
		$('forgotpasswordForm').addEvent('submit', function(e){
			e.stop();
			if( checkedForm(this) ){
				var log = $('log_res').empty().addClass('ajax-loading');
				this.set('send', {onComplete: function(response) { 
					log.removeClass('ajax-loading');
					//log.set('html', response);
					showMissingInfoError(response);
					$('forgotPasswordBox').tween('height', 0);
					$('loginFormBoxInner').tween('height', $('loginFormBoxInner').trgtHeight);
				}});
				this.send();
			}
		});
	}

	//LOGIN AJAX SUBMIT
	if($('loginForm') != null){
		$('loginForm').addEvent('submit', function(e){
			e.stop();
			ajaxLogin(this);
		});
	}
}


function ajaxLogin(formObj){
	if( checkedForm(formObj) ){
		var log = $('log_res').addClass('ajax-loading').removeClass('hidden').set('html','Processing');
		formObj.set('send', {onComplete: function(response) { 
			log.removeClass('ajax-loading');
			//showMissingInfoError(response);
			log.set('html', response);
			if($('ajaxReturn') != null && $('ajaxReturn').getAttribute('rel') == 'true'){
				if($('signupFormBox') != null){
					if($('signupForm') != null){
						dontredirect = '';
						chkUsrO = $('signupForm').elements; //$('loginForm').elements;
						for(ci=0;ci<chkUsrO.length;ci++){
							//if(chkUsrO[ci].name.indexOf('user[') != -1){
							if(chkUsrO[ci].name == 'form[ajaxgoto]'){
								dontredirect = chkUsrO[ci].value; //1
							}
						}
						if(dontredirect != ''){ //!
							window.location = dontredirect; //'/account/favourites.html';
						}
					}
					
					fillFormFromAjax('signupForm');
					
					$('signupFormBox').tween('height', $('signupFormBox').trgtHeight);
					$('loginFormBox').tween('height', 0);
				}
			}
		}});
		formObj.send();
	}
	
}

function ajaxPaymentSend(formObj){
	var log = $('paymentResponse').empty().removeClass('hidden').addClass('ajax-loading');
	action = (formObj.action.indexOf('tmpl=') != -1)? formObj.action : formObj.action + '&tmpl=maincomponent';
	
	if($('setPayment')){
		propertyid = document.forms['setPayment']['property_id'].options;
		paymenttype = document.forms['setPayment']['paymenttype'].options;
		formObj['payment[property_id]'].value = propertyid[propertyid.selectedIndex].value;
		formObj['payment[type]'].value = paymenttype[paymenttype.selectedIndex].value;
	}
	//alert(action + ' sending: '+ formObj.toQueryString());
	new Request({
	   url: action,
	   method: 'post',
	   data: formObj.toQueryString(),
	   onFailure: function(instance){
			// ...
	   },
	   onSuccess: function(responseXML){
		   //alert(responseXML);
			$('paymentResponse').removeClass('ajax-loading');
			if(responseXML != ''){
		        message = tagContents('message', responseXML); 
				status = tagContents('status', responseXML); 
				redirectURL = tagContents('redirectURL', responseXML); 
				if(status == true && $('paymentOptions')){
					$('paymentOptions').addClass('hidden');
				}
				if(redirectURL != ''){
					$('paymentResponse').set('html', '<iframe name="heidelpayIframe" id="heidelpayIframe" frameborder="0" scrolling="no" allowtransparency="true" width="100%" height="650" vspace="0" hspace="0" src="'+ redirectURL + '" />');
				}else{
					$('paymentResponse').set('html', message);
				}
			}else{
				$('paymentResponse').set('html', 'Unknown Failure - Are you still connected to the internet?');
			}
			//window.location = String(window.location).replace(/\#.*$/, "") + "#paymentResponseArea";
	   }
	}).send();
}

//ajaxLoadHtml(Form (as obj), Target load area (as obj), Action to post to, Set true to not go to page top, Set false to prevent adding content to load area)
function ajaxLoadHtml(formObj, targetObj, action, stayput, addcontent){
	formData = formObj.toQueryString();
	var formBox = formObj.name + 'Area';
	if(!action){
		action = window.location.search.substring(0);
	}
	
	if(!addcontent){
		var log = targetObj.empty().removeClass('hidden').addClass('ajax-loading');
	}else{
		var log = targetObj;
	}
	new Request.HTML({
	   url: action,
	   method: 'post',
	   data: formData,
	   onFailure: function(instance){
			// ...
	   },
	   onSuccess: function(responseTree, responseElements, responseHTML, responseJavasSript){
			if(log){
				log.removeClass('ajax-loading');
			}
			if(responseHTML != ''){
				if(responseHTML.indexOf('<root>') != -1){
					message = tagContents('message', responseHTML); 
					status = tagContents('status', responseHTML); 
					//alert(response)
					if(log.id != 'newsletterFormAjax' && log.id != 'signupFormAjax'){
						log.set('html', log.get('html') + message);
						if(responseJavasSript){
							eval(responseJavasSript);
						}
					}else{
						log.empty();
						showMissingInfoError(message);
					}
					if(status == true && $(formBox)){
						$(formBox).addClass('hidden');
					}
				}else{
					log.set('html', log.get('html') + responseHTML);
					if(responseJavasSript){
						eval(responseJavasSript);
					}
				}
				if(log.id == 'ajaxListMore0'){
					MOOdalBox.resetInside('ajaxListMore0');
				}
			}else{
				log.set('html', 'Unknown Failure - Are you still connected to the internet?');
			}
			if(!stayput){
				window.location = String(window.location).replace(/\#.*$/, "") + "#thetop";
			}
	   }
	}).send();
}

//REGISTRATION FORM AUTO CHECKER
//document.setCheckForms = function(baseObj){
function setCheckForms(baseObj){
	docForms = baseObj.getElementsByTagName('form'); //$$('#wrapper form');
	for(f=0;f<docForms.length;f++){
		setForm = $(docForms[f].id);
		if(setForm != null){
			if( setForm.getAttribute('rel') != null && setForm.getAttribute('rel').indexOf('checkForm') != -1 ){
				for(i=0;i<SubmitTypes.length;i++){
					if( $(setForm.id + SubmitTypes[i]) != null && $(setForm.id + SubmitTypes[i]).getAttribute('rel') != null ){
						rel = $(setForm.id + SubmitTypes[i]).getAttribute('rel');
						$(setForm.id + SubmitTypes[i]).parentNode.innerHTML = '<div id="' + setForm.id + SubmitTypes[i]+ '" class="'+rel+'Button"><div class="' + rel + 'ButtonInner">&nbsp;</div></div>';
						$(setForm.id + SubmitTypes[i]).stype = SubmitTypes[i];
						$(setForm.id + SubmitTypes[i]).addEvent('click', function(){
							checkForm = $(this.id.split(this.stype).join(''));
							if(checkForm.name.indexOf('login') != -1 && checkForm.action.indexOf('ajax') != -1 ){
								ajaxLogin(checkForm);
							}else if(checkForm.name.indexOf('payment') != -1 && checkForm.action.indexOf('ajax') != -1){
								ajaxPaymentSend(checkForm);
							}else if(checkForm.name.toLowerCase().indexOf('location') != -1 ){
								locationUpdate(checkForm);
							}else{
								if(checkForm.id != 'applicationPriceForm'){
									if( checkedForm( checkForm ) ) {
										if(checkForm['application[submit_status]']){
											checkForm['application[submit_status]'].value= this.stype.toLowerCase();
										}
										if(checkForm.getAttribute('rel') == 'checkFormAjax' ){
											ajaxLoadHtml(checkForm, $(checkForm.name + 'Ajax'), checkForm.ajaxaction.value);
										}else{
											checkForm.submit();
										}
									}
								}else{
									priceType = parseInt($('rentaltypesel').options[$('rentaltypesel').options.selectedIndex].value);
									if(priceType == 1){
										tempHTML = $('rentaltype2').get('html');
										$('rentaltype2').empty();
									}else{
										tempHTML = $('rentaltype1').get('html');
										$('rentaltype1').empty();										
									}
									if( checkedForm( checkForm ) ) {
										checkForm.submit();
									}else{
										if(priceType == 1){
											$('rentaltype2').set('html', tempHTML);
										}else{
											$('rentaltype1').set('html', tempHTML);
										}
									}
								}
							}
							return false;
						})
					}
				}
				setForm.addEvent('submit', function(e){
					e.stop();
					if( checkedForm(this) ){
						action = ( !this.getAttribute('action') ) ? document.location.href : this.getAttribute('action');
						if( action.indexOf('ajax') == -1 ){
							this.submit();
						}
					}
				});
				
				formInputs = $$('#' + setForm.id + ' input'); 
				for(j=0;j<formInputs.length;j++){
					if( !formInputs[j].hasClass('done') ){
						rel = (formInputs[j].getAttribute('rel') != null) ? formInputs[j].getAttribute('rel') : '';
						if( rel.indexOf('if') != -1 && rel.length < 4 ){
							errorImg = formInputs[j].name.split('[').join('_').split(']').join('') + 'Status';
							if(formInputs[j].type == 'file'){
								formInputs[j].addClass('done');
								addImageUploader(formInputs[j]);
							}
						}
					}
				}
				
				for(i=0;i<CheckTypes.length;i++){
					formInputs = $$('#' + setForm.id + ' ' + CheckTypes[i]); 
					//formInputs = setForm.getElementsByTagName(CheckTypes[i]);
					for(j=0;j<formInputs.length;j++){
						if( !formInputs[j].hasClass('done') ){
							rel = (formInputs[j].getAttribute('rel') != null) ? formInputs[j].getAttribute('rel') : '';
							if(formInputs[j].type == 'text' && !formInputs[j].getAttribute('maxlength')){
								formInputs[j].setAttribute('maxlength', 255);
							}
							if(formInputs[j].type == 'textarea' && !formInputs[j].getAttribute('maxlength') && !$('admin') ){
								formInputs[j].setAttribute('maxlength', 400);
							}
							if((rel.indexOf('c') != -1 || rel.indexOf('if') != -1) && (rel.length < 4 || rel.substr(0, 4) == 'cpc.') ){
								formInputs[j].addClass('done');
								errorImg = formInputs[j].name.split('[').join('_').split(']').join('') + 'Status';
	
								if(formInputs[j].type == 'checkbox'){
									//formInputs[j].parentNode.parentNode.innerHTML += '<div id="'+errorImg+'" class="formStatus"></div>';
								}else if(formInputs[j].type != 'hidden' && formInputs[j].type != 'file'){
									formInputs[j].parentNode.innerHTML += '<div id="'+errorImg+'" class="formStatus"></div>';
								}
								formInputs[j] = $$('#' + setForm.id + ' ' + CheckTypes[i])[j];
								if(formInputs[j] != null){
									if(rel == 'cd'){
										formInputs[j].addEvent('click', function(){	
											openDateBox(this);
											scwNextAction=checkThisFormItem.runsAfterSCW(this,this);
											scwShow(this,this,this);
										 });
										formInputs[j].addEvent('focus', function(){
											this.storeVal = this.value;
											openDateBox(this);
											scwNextAction=checkThisFormItem.runsAfterSCW(this,this);
											scwShow(this,this,this);
										});
										formInputs[j].addEvent('change', function(){	
											//this.value = (this.storeVal) ? this.storeVal : '';
											if(this.form.elements['contact[depart_date]']){
												chkArrVal = (this.form.elements['contact[arrive_date]']) ? this.form.elements['contact[arrive_date]'].value : this.form.elements['contact[arrival_date]'].value;
												chkDepVal = this.form.elements['contact[depart_date]'].value;
												if(chkDepVal && chkArrVal ){
													chkArrVal = new Array(parseInt(chkArrVal.split('/')[0],10), parseInt(chkArrVal.split('/')[1],10),parseInt(chkArrVal.split('/')[2],10));
													chkDepVal = new Array(parseInt(chkDepVal.split('/')[0],10), parseInt(chkDepVal.split('/')[1],10),parseInt(chkDepVal.split('/')[2],10));
													if( (chkArrVal[0] < chkDepVal[0] && chkArrVal[1] == chkDepVal[1] && chkArrVal[2] == chkDepVal[2]) || (chkArrVal[1] < chkDepVal[1]) || (chkArrVal[2] < chkDepVal[2]) ){
														
													}else{
														//alert( this.name + ' :::  '+ chkArrVal[0] +'/'+chkArrVal[1]+ '/'+chkArrVal[2] + ' ::: ' + chkDepVal[0] +'/'+chkDepVal[1]+ '/'+chkDepVal[2]);
														this.form.elements['contact[depart_date]'].value = '';
													}
												}
											}
										});
									}
									
									formInputs[j].addEvent('blur', function(){
										checkThisFormItem(this);
									});
								}
							}else{
								if(rel == 'd'){
									formInputs[j].addClass('done'); 
									formInputs[j].addEvent('click', function(){	
										scwNextAction=checkThisFormItem.runsAfterSCW(this,this);
										scwShow(this,this,this);
									 });
									formInputs[j].addEvent('focus', function(){
										this.storeVal = this.value;
										scwNextAction=checkThisFormItem.runsAfterSCW(this,this);
										scwShow(this,this,this);
									});
									formInputs[j].addEvent('change', function(){	
										if(this.value != this.storeVal && $('adminFilterForm') != null){
											sqA = queryStringArray();
											if( $('contactsearch') != null ){
												getResultNumber(this.form, '/admin/index.php?class='+sqA['class']+'&action=contactsearchnumbers&view=ajax&tmpl=maincomponent');
											}else{
												getResultNumber(this.form, '/admin/index.php?class='+sqA['class']+'&action=searchnumbers&view=ajax&tmpl=maincomponent');
											}
										}
										//this.value = (this.storeVal) ? this.storeVal : '';
									});
									
									formInputs[j].addEvent('blur', function(){
										this.fireEvent('change');
									});
								}
							}
						
							if(formInputs[j] != null && formInputs[j].type == 'textarea'){
								formInputs[j].addClass('done');
								if( formInputs[j].getAttribute('maxlength') ){
									formInputs[j].addEvent('keyup', function(){
										limitNum = parseInt(this.getAttribute('maxlength'));
										if (this.value.length > limitNum)  {
											this.value = this.value.substring(0, limitNum-1);
										}
									});
									formInputs[j].addEvent('keydown', function(){
										limitNum = parseInt(this.getAttribute('maxlength'));
										if (this.value.length > limitNum)  {
											this.value = this.value.substring(0, limitNum-1);
										}
									});
								}
							}

							if(formInputs[j] != null && formInputs[j].type == 'checkbox'){
								formInputs[j].addClass('done');
								formInputs[j].addClass('hidden');
								newID = (formInputs[j].name.indexOf('[]') != -1) ? formInputs[j].name.split('[]').join(j).split('[').join('_').split(']').join('') : formInputs[j].name.split('[').join('_').split(']').join('');
								formInputs[j].id = newID;
								if($(newID+'_cc') == null){
									classToName = ( formInputs[j].checked ) ? 'Ticked' : '';
									//formInputs[j].parentNode.set('html', '<div id="'+newID+'_cc" rel="'+newID+'" class="customCheckBox'+classToName+'"><div class="innerCheckBox">&nbsp;</div></div>' + formInputs[j].parentNode.get('html'));
									newHTML = '<div id="'+newID+'_cc" rel="'+newID+'" class="customCheckBox'+classToName+'"><div class="innerCheckBox">&nbsp;</div></div>' + formInputs[j].parentNode.innerHTML;
									if((rel.indexOf('c') != -1 || rel.indexOf('if') != -1) && rel.length < 4){
										errorImg = formInputs[j].name.split('[').join('_').split(']').join('') + 'Status';
										newHTML += '<div id="'+errorImg+'" class="formStatus" style="float:right;margin-right:25px;"></div>';
									}
									formInputs[j].parentNode.innerHTML = newHTML;
									$(newID+'_cc').addEvent('click', function(){
										checkBoxId = this.getAttribute('rel');
										$(checkBoxId).checked = !$(checkBoxId).checked;
										if($(checkBoxId).onchange){
											$(checkBoxId).onchange();
										}
										if($(checkBoxId).form && $(checkBoxId).form.id == 'searchForm'){
											getResultNumber($(checkBoxId).form);
										}
										$(this.id).className = ( $(checkBoxId).checked ) ? 'customCheckBoxTicked' : 'customCheckBox';
									});
								}
							}
							
							if( formInputs[j] != null && (formInputs[j].type == 'textarea' || formInputs[j].type == 'text' || formInputs[j].type == 'password') ){
								formInputs[j].addEvent('focus', function(e){
								   backSpaceOk = true
								});
								formInputs[j].addEvent('blur', function(e){
									backSpaceOk = false;
								});
							}
							
						}

					}
				}
			}
		}
	}
}



function checkThisFormItem(formItem){ //pass Obj
	formItem.fireEvent('change');
	
	rel = formItem.getAttribute('rel');
	name = formItem.name;
	errorImg = (rel.indexOf('fc') != -1) ? formItem.name.split('[')[1].split(']').join('') + 'Status' : formItem.name.split('[').join('_').split(']').join('') + 'Status';
	val = false;
	vLC = (rel == 'cp' || rel == 'ce' || rel == 'cec') ? 5 : 1;
	vLC = (rel == 'cd') ? 9 : vLC;
	vLC = (rel == 'cn' || rel == 'cnn' || rel == 'ct') ? 0 : vLC;
	if( rel.substr(0,3) == 'cpc' ){
		vLC = (formItem.value != '') ? 5 : -1;
	}
	if(formItem.type == 'text'){
		val = (formItem.value.length > vLC) ? true : false;
		if( rel == 'ce' || rel == 'cec' ){
			val = (formItem.value.indexOf(".") > 0) && (formItem.value.indexOf("@") != -1) ? val : false;
		}
		if(rel == 'cd'){
			if(formItem.value != ''){
				val = (formItem.value.split("/").length > 2) ? val : false;
			}else{
				val = 'i';
			}
		}
		val = ( rel == 'cn' && 	parseFloat(formItem.value) == 0 ) ? false : val;
		phoneCheck = /^(\+\d{0,12})*\s*(\(\d{0,12}\)\s*)*\d{0,12}(-{0,12}|\s{0,12})\d{0,12}(-{0,12}|\s{0,12})\d{0,12}(-{0,12}|\s{0,12})\d{0,12}(-{0,12}|\s{0,12})\d{0,12}$/;
		val = ( rel == 'ct' && !formItem.value.match(phoneCheck)) ? false : val;
	}else if(formItem.type == 'password'){
		val = (formItem.value.length > vLC) ? true : false;
	}else if(formItem.type == 'textarea'){
		val = (formItem.value.length > vLC) ? true : false;
	}else if(formItem.type == 'checkbox'){
		val = (formItem.checked) ? true : false;
	}else if( formItem.type.indexOf('select')!= -1 ){
		if(formItem.options.length > 0){
			val = (formItem.options[formItem.selectedIndex].value != '') ? true : false;	
		}else{
			val = false;
		}
	}else if(formItem.type == 'hidden' && rel.indexOf('c') > 0){
		val = (formItem.value.length > 0) ? true : false;
	}
	
	if(rel.substr(0,4) == 'cpc.'){
		val = ( formItem.form.elements['user['+rel.split('.')[1]+']'].value != formItem.value ) ? false : val;
	}
	
	//if($(errorImg)!=null){
	//if(formItem.parentNode.getElementById(errorImg)!= null){	
	if( $(errorImg) != null ){
		//alert('1.');
		if(val == true){
			$(errorImg).set('class', 'formStatusTick');
		}else{
			$(errorImg).set('class', 'formStatusCross');
		}
		if(val == 'i'){
			val = false;
		}
	}else{
		//alert('2.');
		if(formItem.parentNode.getElementsByTagName('div')[0] != null && formItem.parentNode.getElementsByTagName('div')[0].className.indexOf('Status') != -1){
			if(val != 'i'){
				if(val == true){
					formItem.parentNode.getElementsByTagName('div')[0].className = 'formStatusTick';
					//$(errorImg).set('class', 'formStatusTick');
				}else{
					formItem.parentNode.getElementsByTagName('div')[0].className = 'formStatusCross';
					//$(errorImg).set('class', 'formStatusCross');
				}
			}else{
				val = false;
			}
		}
		if(formItem.type == 'checkbox'){
			$(formItem.parentNode.getElementsByTagName('div')[0].id.split('_cc').join('Status')).className = (val == true) ? 'formStatusTick' : 'formStatusCross';
		}
	}
	return val;
}

function fillFormFromAjax(fillForm){ //pass Obj Name
	if($('ajaxData')!=null){
		//ajaxData = $('ajaxData').getElementsByTagName('div');
		ajaxDataEls = $$('#ajaxData div');
		ajaxDataComplete = parseInt($('ajaxData').getAttribute('rel'));
		ajaxArray = new Array();
		for(i=0;i< ajaxDataEls.length;i++){
			ajaxArray[ajaxDataEls[i].id] = ajaxDataEls[i].get('html');
		}
		for(i=0;i<CheckTypes.length;i++){
			//formInputs = $(fillForm).getElementsByTagName(CheckTypes[i]);
			formInputs = $$('#' + fillForm + ' ' + CheckTypes[i]);
			for(j=0;j<formInputs.length;j++){
				chkName = formInputs[j].name.split('[').join('_').split(']').join('');
				if(ajaxArray[chkName]!=null){
					if(formInputs[j].type == 'text' || formInputs[j].type == 'password' || formInputs[j].type == 'hidden'){
						formInputs[j].value = ajaxArray[chkName];
						$('regPassword').addClass('hidden');
					}else if(formInputs[j].type == 'checkbox'){
						formInputs[j].checked = (parseInt(ajaxArray[chkName]) == 1) ? true : false;
						if($(formInputs[j].id+'_cc') != null){
							$(formInputs[j].id+'_cc').className = (parseInt(ajaxArray[chkName]) == 1) ? 'customCheckBoxTicked' : 'customCheckBox';
						}
					}else if(formInputs[j].type.indexOf('select')!=-1){
						formInputs[j].selectedIndex = 0;
						for(k=0;k<formInputs[j].options.length;k++){
							formInputs[j].selectedIndex = (formInputs[j].options[k].value == ajaxArray[chkName]) ? k : formInputs[j].selectedIndex;
						}	
					}
				}
			}
		}
		/*
		if(ajaxDataComplete && checkedForm( $(fillForm) ) ){
			$(fillForm).submit();
		}
		*/
	}
}

function checkedForm(checkForm){ //pass Obj
	vOkToSend = true;
	for(i=0;i<CheckTypes.length;i++){
		//formInputs = checkForm.getElementsByTagName(CheckTypes[i]);
		formInputs = $$('#' + checkForm.id + ' ' + CheckTypes[i]);
		for(j=0;j<formInputs.length;j++){
			rel = (formInputs[j].getAttribute('rel') != null) ? formInputs[j].getAttribute('rel') : ''
			if(rel.indexOf('c') != -1 && rel.length < 4){
				if(!checkThisFormItem(formInputs[j])){
					vOkToSend = false;
				}
			}
		}
	}
	if(!vOkToSend){		
		if($(checkForm.id + 'Status') != null){
			$(checkForm.id + 'Status').set('class', 'formStatusCross');
		}
		window.location = String(window.location).replace(/\#.*$/, "") + "#thetop";
		showMissingInfoError();
		return false;
	}else{
		return true;
	}
}

//CONVERT FILE UPLOAD TO AJAX LOADER
function addImageUploader(fileId){ //pass Obj

	fileId = $(fileId.id);
	fileElName = (fileId.name.indexOf('[')>0) ? fileId.name.split('[')[1].replace(']','') : fileId.name;
	relVal = (fileId.getAttribute('rel') == 'ifc') ? 'fc' : '';
	storedVal = $(fileId.name.split('[').join('_').split(']').join('')+'current').value;
	tickStatus = (storedVal != '') ? 'Tick' : '';
	nameStatus = (storedVal != '') ? 'Saved image' : '&nbsp';
	$(fileId.id.split('file').join('holder')).set('html', '<div class="fileLoader">'
								+ '<div id="select_'+fileElName+'" class="fileLoaderSelect">&nbsp;</div>'
								+ '<div id="upload_'+fileElName+'" class="fileLoaderUpload">&nbsp;</div>'
								+ '<div id="edit_'+fileElName+'" class="fileLoaderEdit">&nbsp;</div>'
								+ '<div id="'+fileElName+'Status" class="formStatus'+tickStatus+'">&nbsp;</div>'
								+ '<div id="name_'+fileElName+'" class="fileLoaderName">'+nameStatus+'</div>'
								+ '<input type="hidden" id="file_'+fileElName+'" name="'+fileId.name+'" value="'+storedVal+'" rel="'+relVal+'" />'
								+ '<div id="response_'+fileElName+'" class="hidden">&nbsp;</div>'
								+ '</div>');
	if(storedVal != ''){
		$('select_'+fileElName).className = 'fileLoaderChange';
	}
	$('delete_'+fileElName).addEvent('click',function(e){
		if(CurrentCrop != ''){
			cancelCropper();
		}
		basename = this.id.split('delete_').join('');
		while($('select_' + basename) != null){
			baseAhead = 'image' + (parseInt(basename.split('image').join(''))+1);
			if( $('select_' + baseAhead) != null ){
				$('select_' + basename).className = $('select_' + baseAhead).className
				$('upload_' + basename).className = $('upload_' + baseAhead).className
				$(basename+'Status').className = $(baseAhead+'Status').className
				$('name_'+basename).set('html',$('name_'+baseAhead).get('html'));
				$('file_'+basename).value = $('file_'+baseAhead).value;
				$('application_'+basename+'_delete').value = ($('file_'+baseAhead).value != '') ? 0 : 1;
				$('application_'+basename+'name').value = $('application_'+baseAhead+'name').value;
				num = parseInt(basename.split('image')[1]);
				if( $('file_'+baseAhead).value.length <= 0 ){
					$('delete_'+basename).addClass('hidden');
				}else{
					$('delete_'+basename).removeClass('hidden');
				}
				$('applicationimages_'+num).style.backgroundImage = $('applicationimages_'+(num+1)).style.backgroundImage;
				if( $('ajaxSlides') != null ){
					if( $('ajaxSlides').getElementsByTagName('img')[num-1] != null ){
						$('ajaxSlides').getElementsByTagName('img')[num-1].src = $('ajaxSlides').getElementsByTagName('img')[num].src;
					}
				}
			}else{
				$('select_' + basename).removeClass('hover');
				$('upload_' + basename).removeClass('hover');
				$(basename+'Status').set('class','formStatus');
				$('name_'+basename).set('html','');
				$('file_'+basename).value = '';
				$('application_'+basename+'_delete').value = 1;
				num = parseInt(basename.split('image')[1]);
				$('delete_'+basename).addClass('hidden');
				$('applicationimages_'+num).style.backgroundImage = '';
				if( $('ajaxSlides') != null ){
					if( $('ajaxSlides').getElementsByTagName('img')[num-1] != null ){
						$('ajaxSlides').getElementsByTagName('img')[num-1].src='/images/page/trans.gif';
					}
				}
				$('application_'+basename+'name').value = '';
			}
			$('application_'+basename+'name').removeClass('done');
			if($('application_'+basename+'nameStatus') != null){
				$('application_'+basename+'nameStatus').destroy();
			}
			if( $('delete_'+basename).getAttribute('rel') == 'comp' || $('file_'+basename).value != '' ){
				$('application_'+basename+'name').setAttribute('rel','c');
			}else{
				$('application_'+basename+'name').setAttribute('rel','');
			}
			basename = baseAhead;
		}
		setCheckForms($('applicationFormBox'));
		return false;
	});
	
	$('edit_'+fileElName).addEvent('click', function(){
		basename = this.id.split('edit_').join('');
		addCropper( basename );
	});
	appimg = fileElName.replace('image', '');
	if( $('applicationimagesimage_'+appimg) != null && $('applicationimagesimage_'+appimg).src != String(window.location).replace(/\#.*$/, "") && $('applicationimagesimage_'+appimg).src != ""){
		setAppImageInit(appimg);
	}
	// Uploader instance
	//    '/index.php?class=property&action=imageupload&view=ajax&tmpl=maincomponent'
	//    '/script/fancyupload/script.php?response=xml'
	$('select_' + fileElName).swf = new Swiff.Uploader({
		id: 'swf_'+fileElName,
		path: '/script/fancyupload/Swiff.Uploader.swf',
		url: '/index.php?class=property&action=imageupload&view=ajax&tmpl=maincomponent',
		verbose: true,
		queued: false,
		multiple: false,
		target: $('select_' + fileElName),
		instantStart: true,
		typeFilter: {
			'Images (*.jpg, *.jpeg, *.gif, *.png)': '*.jpg; *.jpeg; *.gif; *.png'
		},
		fileSizeMax: 6 * 1024 * 1024,
		basename: fileElName,
		onSelectSuccess: function(files) {
			if (Browser.Platform.linux) window.alert('Warning: Due to a bug in Adobe Flash Player on Linux,\nthe browser will probably freeze during the upload process.\nSince you are prepared now, the upload will start right away ...');
			$(this.options.basename+'Status').set('class','formStatus');
			$('select_' + this.options.basename).addClass('hover');
			this.setEnabled(true);
			if(CurrentCrop != ''){
				cancelCropper();
			}
			if(this.options.instantStart){
				$('upload_'+this.options.basename).fireEvent('click');
			}
		},
		onSelectFail: function(files) {
			$(this.options.basename + 'Status').set('class','formStatusCross');
			$('select_' + this.options.basename).removeClass('hover');
			$('name_'+this.options.basename).removeClass('ajaxLoading');
			$('name_'+this.options.basename).set('html', '<span class="failText">Over 2mb.</span>');// (Error: #' + files[0].validationError + ')');
		},
		appendCookieData: true,
		onQueue: function(){
			if(this != null){
				if (!this.uploading) return;
				size = Swiff.Uploader.formatUnit(this.size, 'b');
				$('name_'+this.options.basename).addClass('ajaxLoading');
				$('name_'+this.options.basename).set('html', '<span class="loadText">' + this.percentLoaded + '% of ' + size + '</span>');
			}
		},
		onFileComplete: function(file) {
			//alert(file.response.text);
			responseInfo = JSON.decode(file.response.text, true);
			$('name_'+this.options.basename).removeClass('ajaxLoading');
			if(!responseInfo.status){
				//error
				$('name_'+this.options.basename).set('html',responseInfo.error);
				$('select_' + this.options.basename).removeClass('hover');
				$('upload_' + this.options.basename).removeClass('hover');
				$(this.options.basename+'Status').set('class','formStatusCross');
				$('file_'+this.options.basename).value = '';
				file.remove();
				this.setEnabled(true);
			}else{
				//success
				$('select_' + this.options.basename).className = 'fileLoaderChange';
				$('select_' + this.options.basename).removeClass('hover');
				$('upload_' + this.options.basename).removeClass('hover');
				$(this.options.basename+'Status').set('class','formStatusTick');
				$('name_'+this.options.basename).set('html', responseInfo.name + '.jpg');
				$('file_'+this.options.basename).value = responseInfo.stored;
				if($('delete_'+this.options.basename).getAttribute('rel') == 'vol'){
					$('delete_'+this.options.basename).removeClass('hidden');
				}
				$('application_'+this.options.basename+'_delete').value = 0;
				loadSlideShow(this.options.basename);
				file.remove();
				this.setEnabled(true);
				
				$('application_'+this.options.basename+'name').setAttribute('rel','c');
				$('application_'+this.options.basename+'name').removeClass('done');
				if($('application_'+this.options.basename+'nameStatus') != null){
					$('application_'+this.options.basename+'nameStatus').destroy();
				}
				setCheckForms($('applicationFormBox'));
			}
		},
		onComplete: function() {
			//this.target.set('html', 'Complete');
		}
	});
	
	$('select_' + fileElName).addEvents({
		click: function() {
			this.addClass('hover');
			return false;
		},
		mouseenter: function() {
			this.currentOver = (this.className.indexOf('hover') == -1) ? false : true;
			this.addClass('hover');
			this.swf.reposition();
		},
		mouseleave: function() {
			if(!this.currentOver){
				this.removeClass('hover');
			}
			this.blur();
		},
		mousedown: function() {
			this.focus();
		}
	});
	
	$('upload_' + fileElName).basename = fileElName;
	$('upload_' + fileElName).addEvent('click', function(){	
		$('name_' + this.basename).set('html','Uploading...');
		this.addClass('hover');															 
		$('select_' + this.basename).addClass('hover');
		$('select_' + this.basename).swf.start();
	});
	
}

function setAppImageInit(appimg){
	newSource = $('applicationimagesimage_'+appimg).src;
	$('applicationimages_'+appimg).setAttribute('rel', 'URL(/images/property/empty_image.png)'); //$('applicationimages_'+appimg).style.backgroundImage;
	$('applicationimages_'+appimg).style.backgroundImage = 'URL('+newSource+')';
	newSource = newSource.replace('/thumbs/','/').replace('/'+ImageDimW+'-'+ImageDimH+'-0', '');
	$('applicationimagesimage_'+appimg).src = newSource.replace('-crop','');
	$('applicationimagesimage_'+appimg).addClass('hidden');
	InitSlideImages[InitSlideImages.length-1] = 'applicationimagesimage_'+appimg;
	/*
	jcrops = $$('#applicationimages_'+appimg + ' .jcrop-holder');
	if(jcrops[0]){
		jcropsImgs = jcrops[0].getElementsByTagName('img');
		jcropsImgs[0].src = jcropsImgs[1].src =  $('applicationimagesimage_'+appimg).src;
		$('applicationimagesimage_'+appimg).removeClass('hidden');
	}
	*/
}

function loadSlideShow(base){
	data = $('file_'+base).value;
	num = parseInt(base.split('image')[1]);
	//setAppImageInit(num);
	if( $('ajaxSlides') != null && num){
		if( $('applicationimagesimage_' + num) ){
			img = $('applicationimagesimage_' + num);
			img.src = '/'+data;
			img.addClass('hidden');
			url = "/index.php?class=media&action=format&view=" + escape("link["+ImageDimW+"|"+ImageDimH+"|0]") + "&tmpl=maincomponent&data=" + escape(data);
			var req = new Request({ //.HTML
				url: url,
				onSuccess: function(filename) {
					//alert(img.id);
					img = $(this.img);
					num = this.num;
					$(img.id.split('image_').join('_')).set('rel','URL(/images/property/empty_image.png)'); //$(img.id.split('image_').join('_')).style.backgroundImage;
					$(img.id.split('image_').join('_')).style.backgroundImage = 'URL('+filename+')';					
					navButton = $$('#navProperty a')[num];
					navButton.fireEvent('click');
					//setAppImageInit(num);
				},
				onFailure: function() {
					alert('Request failed.');
				}
			});
			req.img = img.id;
			req.num = num;
			req.send();
		}
	}
}

function addCropper( base ){
	if(CurrentCrop != ''){
		cancelCropper();
	}
	data = $('file_'+base).value;
	num = parseInt(base.split('image')[1]);
	if( $('ajaxSlides') != null ){
		if( $('applicationimagesimage_' + num) ){
			var img;
			img = $('applicationimagesimage_' + num);
			img.removeClass('hidden');
			storeImage = $(img.id.split('image_').join('_')).style.backgroundImage;
			$(img.id.split('image_').join('_')).style.backgroundImage = $(img.id.split('image_').join('_')).getAttribute('rel');
			$(img.id.split('image_').join('_')).setAttribute('rel',storeImage);
			
			if(img.src && img.src != ''){
				navButton = $$('#navProperty a')[num];
				navButton.fireEvent('click');
				CurrentCrop = img.id;
				(function($) { 
					//if($('#' + img.id).cropper != '1'){						
					if(!JCropAPI[num]){
						JCropAPI[num] = $.Jcrop('#' + img.id, {
											aspectRatio: ImageDimW/ImageDimH,
											boxWidth: ImageDimW, boxHeight: ImageDimH,
											minSize: [ImageDimW,ImageDimH],
											onSelect: setCoordsCropper
										});
						//croppers = $('#'+img.id.split('image_').join('_')).getElementsByClassName('jcrop-holder');
					}else{
						//cropppersimg = croppers[0].getElementsByTagName('img');
						//alert(cropppersimg[0].src);
						
					}
					//$('#' + img.id).cropper = '1';
					//$('.jcrop-holder').removeClass('hidden');
				})(jQuery); 
				
				$('cropCancelCropBox').removeClass('hidden');
				window.location = String(window.location).replace(/\#.*$/, "") + "#slideshow";
			}
		}
	}
}

function saveCropper(){
	if( CurrentCropDim[0] > 0 || CurrentCropDim[1] > 0 || CurrentCropDim[2] || CurrentCropDim[3] > 0){
		url = "/index.php?class=media&action=tempimagesize&view=" + escape("link["+ImageDimW+"|"+ImageDimH+"|0|"+CurrentCropDim[0]+"|"+CurrentCropDim[1]+"|"+CurrentCropDim[2]+"|"+CurrentCropDim[3]+"]") + "&tmpl=maincomponent&file=" + escape(data.replace('-crop',''));
	}else{
		url = "/index.php?class=media&action=tempimagesize&view=" + escape("link["+ImageDimW+"|"+ImageDimH+"|0]")+"&tmpl=maincomponent&file=" + escape(data.replace('-crop',''));		
	}
	var req = new Request({ //.HTML
		url: url,
		onComplete: function(croppedfile) {
			(function($) { 
				//$('.jcrop-holder').addClass('hidden');
				JCropAPI[parseInt(CurrentCrop.split('image_')[1])].destroy();
				JCropAPI[parseInt(CurrentCrop.split('image_')[1])] = false;
			})(jQuery);
			$(CurrentCrop).addClass('hidden');
			$('cropCancelCropBox').addClass('hidden');
			if(croppedfile){
				//Set the new image
				$(CurrentCrop.split('image_').join('_')).setAttribute('rel', $(CurrentCrop.split('image_').join('_')).style.backgroundImage);
				$(CurrentCrop.split('image_').join('_')).style.backgroundImage = 'url(/'+croppedfile+'?'+Math.floor(Math.random()*1000)+')';
				$('file_image'+CurrentCrop.split('image_')[1]).value = croppedfile;
			}else{
				storeImage = $(CurrentCrop.split('image_').join('_')).style.backgroundImage;
				$(CurrentCrop.split('image_').join('_')).style.backgroundImage = $(CurrentCrop.split('image_').join('_')).getAttribute('rel');
				$(CurrentCrop.split('image_').join('_')).setAttribute('rel', storeImage);
			}
			CurrentCrop = '';
		}
	  });
	req.send();

}

function cancelCropper(){
	if(CurrentCrop){
		storeImage = $(CurrentCrop.split('image_').join('_')).style.backgroundImage;
		$(CurrentCrop.split('image_').join('_')).style.backgroundImage = $(CurrentCrop.split('image_').join('_')).getAttribute('rel');
		$(CurrentCrop.split('image_').join('_')).setAttribute('rel', storeImage);	
/*
		(function($) { 
			$('.jcrop-holder').addClass('hidden');
		})(jQuery);		
		$(CurrentCrop).addClass('hidden');		
		$('cropCancelCropBox').addClass('hidden');
*/
		(function($) { 
			//$('.jcrop-holder').addClass('hidden');
			JCropAPI[parseInt(CurrentCrop.split('image_')[1])].destroy();
			JCropAPI[parseInt(CurrentCrop.split('image_')[1])] = false;
		})(jQuery);
		$(CurrentCrop).addClass('hidden');
		$('cropCancelCropBox').addClass('hidden');
		
		CurrentCrop = '';
		
	}
}

function setCoordsCropper(c){
	CurrentCropDim = new Array(c.x, c.y, c.x2, c.y2, c.w, c.h);
}

function addPropertySeason(obj){
	var req = new Request({ //.HTML
		url:'/index.php?class=property&action=display&view=user.seasons.item&tmpl=maincomponent',
		onSuccess: function(html) {
			//$('newSeasons').adopt(html);
			$('newSeasons').set('html', $('newSeasons').get('html') + html);
			setCheckForms(document);
		},
		onFailure: function() {
			alert('Request failed.');
		}
	});
	req.send();
	return false;
}

function removePropertySeason(obj){
	obj.parentNode.parentNode.set('html','');
	return false;
}

var pressCount = 0;
function addPropertyPress(obj){
	pressCount++;
	var req = new Request({ //.HTML
		url:'/index.php?class=property&action=display&view=user.properties.inthepress.item&tmpl=maincomponent&count='+pressCount,
		onSuccess: function(html) {
			var newdiv = document.createElement('div');
			var divIdName = 'newPressItem'+pressCount;
			newdiv.setAttribute('id',divIdName);
			newdiv.innerHTML = html;
  			$('newPress').appendChild(newdiv);
			//$(divIdName).set('html',html);
			//$('newPress').set('html', $('newPress').get('html') + html);
			if( $('pressNoPress') != null){
				$('pressNoPress').addClass('hidden');
			}
			$('pressItems').removeClass('hidden');
			setCheckForms(document);
		},
		onFailure: function() {
			alert('Request failed.');
		}
	});
	req.send();
	return false;
}

function removePropertyPress(obj){
	obj.empty();
}

var priceCount = 0;
function addPropertyPrice(obj){
	priceCount++;
	var req = new Request({ //.HTML
		url:'/index.php?class=property&action=display&view=user.seasons.units.unit&tmpl=maincomponent&count='+priceCount,
		onSuccess: function(html) {
			var newdiv = document.createElement('div');
			var divIdName = 'newPriceItem'+priceCount;
			newdiv.setAttribute('id',divIdName);
			newdiv.innerHTML = html;
  			$('newPrice').appendChild(newdiv);
			setCheckForms(document);
		},
		onFailure: function() {
			alert('Request failed.');
		}
	});
	req.send();
	return false;
}

function removePropertyPrice(obj){
	obj.empty();
}

function switchPropertyPriceType(obj){
	val = obj.options[obj.options.selectedIndex].value;
	if(val == 1){
		$('rentaltype1').removeClass('hidden');
		$('rentaltype2').addClass('hidden');
	}else{
		$('rentaltype2').removeClass('hidden');
		$('rentaltype1').addClass('hidden');
	}
}

var extraCount = 0;
function addPropertyExtra(obj){
	extraCount++;
	var req = new Request({ //.HTML
		url:'/index.php?class=property&action=display&view=user.properties.prices.extras.item&tmpl=maincomponent&count='+extraCount,
		onSuccess: function(html) {
			var newdiv = document.createElement('div');
			var divIdName = 'newExtraItem'+priceCount;
			newdiv.setAttribute('id',divIdName);
			newdiv.innerHTML = html;
  			$('newExtra').appendChild(newdiv);
			setCheckForms(document);
		},
		onFailure: function() {
			alert('Request failed.');
		}
	});
	req.send();
	return false;
}

function removePropertyExtra(obj){
	obj.empty();
}

function enquiryOpenClose(id,state){
	if(!state){
		$('openedItem'+id).addClass('hidden');
		$('closedItem'+id).removeClass('hidden');
	}else{
		$('openedItem'+id).removeClass('hidden');
		$('closedItem'+id).addClass('hidden');
	}
	return false;
}

function switchPaymentPanel(obj){
	if(obj.options[obj.options.selectedIndex].value == ''){
		$('payNewAccount').removeClass('hidden');
		$('paymentWithAccountSubmit').addClass('hidden');
		if(obj.options.length <= 1){
			$('payWithAccount').addClass('hidden');
		}
	}else{
		$('payNewAccount').addClass('hidden');
		$('paymentWithAccountSubmit').removeClass('hidden');
	}
}

function openDateBox(obj){
	if(obj.name == 'contact[arrival_date]' || obj.name == 'contact[arrive_date]'){
		scwDisabledDates = new Array();
		scwDisabledDates[0] = [new Date(scwBaseYear,0,1), new Date(Date.parse(new Date().toDateString()))];
		scwDateNow = new Date(Date.parse(new Date().toDateString()));
		//chkVal = obj.form.elements['contact[depart_date]'].value;
		//if(chkVal){
			//chkVal = new Array(parseInt(chkVal.split('/')[0],10), parseInt(chkVal.split('/')[1],10),parseInt(chkVal.split('/')[2]));
			//scwDisabledDates[1] = [new Date( chkVal[2],chkVal[1]-1,chkVal[0]),new Date(chkVal[2] + scwDropDownYears,0,1)];
		//}
	}
	if(obj.name == 'contact[depart_date]'){
		scwDisabledDates[0] = [new Date(scwBaseYear,0,1), new Date(Date.parse(new Date().toDateString()))];
		chkVal = (obj.form.elements['contact[arrival_date]']) ? obj.form.elements['contact[arrival_date]'].value : obj.form.elements['contact[arrive_date]'].value;
		if(chkVal){
			chkVal = new Array(parseInt(chkVal.split('/')[0],10), parseInt(chkVal.split('/')[1],10), parseInt(chkVal.split('/')[2]));
			scwDisabledDates[1] = [new Date(Date.parse(new Date().toDateString())), new Date( chkVal[2],chkVal[1]-1,chkVal[0])];
			if(obj.value == ''){
				scwDateNow = new Date(chkVal[2],chkVal[1]-1,chkVal[0]);
			}
		}
	}	
}

function clearForm(oForm) {
  var elements = oForm.elements;
  for(i=0; i<elements.length; i++) {     
	  field_type = elements[i].type.toLowerCase();
	  switch(field_type) {
		case "text":
		case "password":
		case "textarea":
			  case "hidden":  
		  elements[i].value = "";
		  break;
		case "radio":
		case "checkbox":
			if (elements[i].checked) {
			  elements[i].checked = false;
		  }
		  break;
		case "select-one":
		case "select-multi":
			selItem = elements[i].options.length -1;
			for(k=0;k<elements[i].options.length;k++){
				if( elements[i].options[k].title && elements[i].options[k].title == 'default' ){
					selItem = k;
				}
			}
			elements[i].selectedIndex = selItem;
		  break;
		default:
		  break;
	  }
    }
}
