// JavaScript Document
function unblur() {
	this.blur();
}

function blurLinks() {
	links = document.getElementsByTagName("a");
	for(i=0; i<links.length; i++) {
		links[i].onfocus = unblur;
	}
	inputs = document.getElementsByTagName("input");
	for(i=0; i<inputs.length; i++) {
		if (inputs[i].type == 'button' || inputs[i].type == 'submit') {
			inputs[i].onfocus = unblur;
		}
	}

}


function setFocus(obj) {
	x = document.getElementById(obj);
	x.focus();
}

function flashObjects (objPath,objWidth,objHeight,objTitle,objParam,wmode,altPath,altWidth,altHeight,altTitle) {
	document.write('<object type="application/x-shockwave-flash" data="'+objPath+'"width="'+objWidth+'" height="'+objHeight+'" '+objParam+'> \
					<param name="movie" value="'+objPath+'" /> \
					<param name="quality" value="high" /> \
					<param name="wmode" value="'+wmode+'" /> \
					<img src="'+altPath+'" width="'+altWidth+'" height="'+altHeight+'" alt="'+altTitle+'" /></object>');
}

function meadiaPlayerObjects (objPath, objWidth, objHeight) {
	document.write('<OBJECT ID="MediaPlayer" CLASSID="CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6" standby="Loading Microsoft Windows Media Player components..."  TYPE="application/x-oleobject" width="'+objWidth+'" height="'+objHeight+'"  align="center"> \
			            <PARAM NAME="url" VALUE="'+objPath+'"> \
			            <PARAM NAME="AutoStart" VALUE=1> \
			            <PARAM NAME="ShowControls" VALUE=1> \
			            <PARAM NAME="uiMode" VALUE="full"> \
						<PARAM NAME="enableContextMenu" value="true"> \
						<embed type="application/x-mplayer2" src="'+objPath+'" ShowControls="1" AutoStart="1" ShowDisplay="0" ShowStatusBar="1" width="'+objWidth+'" height="'+objHeight+'"></embed> \
				      </OBJECT>');
}

function markSelected(el) {
	if (el.parentNode.className != 'selected') {
		el.parentNode.className = 'hover';
	}
	//return false;
}

function unmarkSelected(el) {
	if (el.parentNode.className != 'selected') {
		el.parentNode.className = '';
	}
	//return false;
}

function formElementsStyle () {
	if(document.getElementsByTagName) {

		var className = 'tr_hover',
		pattern = new RegExp('(^|\\s+)' + className + '(\\s+|$)'),			
		rows = document.getElementsByTagName('tr');

		for (var i = 0, n = rows.length; i < n; ++i) {
				rows[i].onmouseover = 
					function() {
						this.className += ' ' + className;
					};
				rows[i].onmouseout = 
					function() {
						this.className = this.className.replace(pattern, ' ');
					};
		}
	}
	rows = null;	
}

function popUp(URL) {
	window.open( URL, "myWindow", "status = 1, height = 600, width = 700, resizable = yes" )
}


function popUpPrint(URL) {
	window.open( URL, "myWindow", "status = 1, height = 600, width = 700, toolbar=no, scrollbars=yes, menubar=no, resizable = yes" )	
}

function fullScreen(URL) {
	window.open( URL, "Floorplan", "status = 1, resizable = yes, fullscreen=yes, scrollbars=auto" );
}

function fade(el) {
	el.style.opacity =  0.5; 
	el.style.MozOpacity =  0.5; 	
	el.style.KhtmlOpacity =  0.5; 
	el.style.filter = "alpha(opacity=50)";
}

function unfade(el) {
	el.style.opacity =  1; 
	el.style.MozOpacity =  1; 	
	el.style.KhtmlOpacity =  1; 
	el.style.filter = "alpha(opacity=100)";
}


function btnHover(el) {
	el.className = 'searchBtnHover';
}

function btnRestore(el) {
	el.className = 'searchBtn';
}

function emptyFormFields(el,val) {
	if (el.value == val ) {
		el.value = '';
	}	
}

function fillFormFields(el,val) {
	if (el.value == '' ) {
		el.value = val;
	}
}

function formValid(form, errors, min_length, nonzero){
	errors.innerHTML = '';
	var elements = form.getElementsBySelector('[rel="validate"]');
	for (i=0;i<elements.length;i++) {
		if (elements[i] == null || elements[i].value == '' || (min_length>-1 && elements[i].value.length < min_length) || (nonzero==true && elements[i].value==0)) {
            errors.innerHTML = errors.innerHTML + elements[i].title + '<br />';
		}
	}

	if (errors.innerHTML == '') {
		return true;
	} else {
		return false;
	}
}
/*
	
*/
function validateElement(element, errorContainer, errorMsg, method, param, check_for_default_values)
{
	var errorContainer = document.getElementById(errorContainer);
	var element_fieldname = element.getAttribute('name');
	
	if (check_for_default_values == true)
	{
		if (element.value == default_value[element_fieldname])
		{
			element.setAttribute('rel', 'validate');
			errorContainer.innerHTML = errorMsg;
			return;
		}
	}

	switch(method)
	{
		case 'number':
			var validNumberRegex = /^[-+]?\d+(\.\d+)?$/;
			
			if (validNumberRegex.test(element.value) && element.value.length >= param)
			{
				element.setAttribute('rel', '');
				errorContainer.innerHTML = '';
			}
			else
			{
				element.setAttribute('rel', 'validate');
				errorContainer.innerHTML = errorMsg;
			}
		break;
	
		case 'shortdate':
			var validShortDateRegex = /^\d{2}(\/)\d{2}$/
			
			if (validShortDateRegex.test(element.value) && element.value.length >= param)
			{
				element.setAttribute('rel', '');
				errorContainer.innerHTML = '';
			}
			else
			{
				element.setAttribute('rel', 'validate');
				errorContainer.innerHTML = errorMsg;
			}
		break;
	
		case 'date':
			//var validShortDateRegex = /^\d{2}(\/)\d{2}(\/)\d{4}$/
			var validShortDateRegex = /^\d{1,2}\/\d{1,2}\/\d{4}$/; 
			
			if (validShortDateRegex.test(element.value))
			{
				
				element.setAttribute('rel', '');
				errorContainer.innerHTML = '';
			}
			else
			{
				element.setAttribute('rel', 'validate');
				errorContainer.innerHTML = errorMsg;
			}
		break;
	
		case 'checked':
			var cnt = 0;
			var arrSize = param.length;
			var inArr = false;
			for (z=0;z<param.length;z++) {
				if ($(param[z]).checked) {
					inArr = true;
				}
			}
			
			if (!inArr)
			{
				element.setAttribute('rel', 'validate');
				errorContainer.innerHTML = errorMsg;
			}
			else
			{
				element.setAttribute('rel', '');
				errorContainer.innerHTML = '';
			}
		break;
	
		case 'selected':
			if (element.value < param)
			{
				element.setAttribute('rel', 'validate');
				errorContainer.innerHTML = errorMsg;			
			}
			else
			{
				element.setAttribute('rel','');
				errorContainer.innerHTML = '';
			}
		break;
	
		case 'minlength':
			if (element.value.length < param){
				element.setAttribute('rel','validate');
				errorContainer.innerHTML=errorMsg;
			}else{
				element.setAttribute('rel','');
				errorContainer.innerHTML="";				
			}
		break;
		
		case 'filecheck':
			if ($(param) != 'undefined' && $(param) != null){
				element.setAttribute('rel','');
				errorContainer.innerHTML="";				
			}else{
				if (element.value.length < 1){
					element.setAttribute('rel','validate');
					errorContainer.innerHTML=errorMsg;
				}else{
					element.setAttribute('rel','');
					errorContainer.innerHTML="";				
				}
			}
		break;
		
		case 'email':
			var emailRegex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
			if (emailRegex.test(element.value))
			{
				element.setAttribute('rel','');
				errorContainer.innerHTML='';	
			}
			else
			{
				element.setAttribute('rel', 'validate');
				errorContainer.innerHTML = errorMsg;
			}
		break;
		
		case 'url':
			var urlRegex = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
			if (urlRegex.test(element.value))
			{
				element.setAttribute('rel', '');
				errorContainer.innerHTML='';
			}
			else
			{
				element.setAttribute('rel', 'validate');
				errorContainer.innerHTML = errorMsg;
			}
		break;
		
		case 'rewriteNavigation':
			var urlRegex = /^([a-z\_]+)$/;
			if (element.value.length < 1)
			{
				element.setAttribute('rel','validate');
				errorContainer.innerHTML=errorMsg;
			}
			else {
				if (!urlRegex.test(element.value))
				{
					element.setAttribute('rel', 'validate');
					errorContainer.innerHTML = "Mod rewrite must contain only lower-case letters (a-z) and underscores (_)";
				}
				else{
					var ajax = new Ajax.Request(rootUrl + 'admin/ajax/rewriteNavigation/'+element.value+'/'+param+'.html', {
						method: 'get',
						asynchronous : false, 
						onSuccess: function (transport) {
							var result = transport.responseText;
							if (result == "true"){
								element.setAttribute('rel','validate');
								errorContainer.innerHTML="Mod rewrite already exists";
							}else{
								element.setAttribute('rel','');
								errorContainer.innerHTML="";				
							}
						}
					});
				}
			}
		break;
		
		case 'refno':
			element.setAttribute('rel','');
			errorContainer.innerHTML="";
								
			var urlRegex = /^([a-zA-Z0-9\_\-]+)$/;
			if (element.value.length < 1)
			{
				element.setAttribute('rel','validate');
				errorContainer.innerHTML=errorMsg;
			}else {
				if (!urlRegex.test(element.value))
				{
					element.setAttribute('rel', 'validate');
					errorContainer.innerHTML = "Ref. No. must contain only letters, numbers and _";
				}else{
					if (param == "-1")
						append = ".html";
					else
						append = "/"+param+".html";
						
					var ajax = new Ajax.Request(rootUrl + 'admin/ajax/refno/'+element.value+append, {
						method: 'get',
						asynchronous : false, 
						onSuccess: function (transport) {
							var result = transport.responseText;
							if (result == "true"){
								element.setAttribute('rel','validate');
								errorContainer.innerHTML="Ref. No. already exists";
							}else{
								element.setAttribute('rel','');
								errorContainer.innerHTML="";				
							}
						}
					});
				}
			}
		break;
		
		case 'int':
			if (element.value == parseInt(element.value) && element.value>param){
				element.setAttribute('rel', '');
				errorContainer.innerHTML = '';
			}else{
				element.setAttribute('rel', 'validate');
				errorContainer.innerHTML = errorMsg;
			}			
		break;

		case 'float':
			if (element.value == parseFloat(element.value) && element.value>param){
				element.setAttribute('rel', '');
				errorContainer.innerHTML = '';
			}else{
				element.setAttribute('rel', 'validate');
				errorContainer.innerHTML = errorMsg;
			}			
		break;		
		
	}
	
}
	

function validateForm(errorMsg){
	var elements = $$('[rel="validate"]');

	if (elements.length > 0){
		for(i=0; i<elements.length; i++){
			el = elements[i];
			el.focus();
			el.blur();
		}
	}
	
	var elements = $$('[rel="validate"]');
	//alert(elements.length);

	if (elements.length > 0){
		alert(errorMsg);
		return false;
	}else{
		return true;
	}
}

function contactsFormValid(){
	var form = $('contactsForm');
	var err=0;
	
	var checks=new Array();
	var checks_static=new Array();
	var checks_boxes_all=new Array();
	var checks_boxes=new Array();
	
	warns=new Array();
	var warns_checks=0;
	var check_err=3;
	warns_texts=new Array();
	
	warns=$('contactsForm').getElementsByClassName('error');
//splitting warnings	
	for (i=0;i<warns.length;i++){
		if (warns[i].id=='c_company_error'){
			warns_checks=warns[i];
			//warns[i].style.display='none';
		}
		else{
			warns_texts.push(warns[i]);
		}
	}
	

//checkboxes spilt
	checks_boxes_all=form.getInputs('checkbox');
	for (i=0;i<checks_boxes_all.length;i++){
		if (checks_boxes_all[i].id=='c_company' || checks_boxes_all[i].id=='c_agency' || checks_boxes_all[i].id=='c_personal'){
			checks_boxes.push(checks_boxes_all[i]);
		}
	}
	
///	warns_texts[i].style.display='none';
	checks=form.getInputs('text'); // -> only text inputs
	for (i=0;i<checks.length;i++){
		switch (checks[i].id){
			case 'fullname':
				checks_static.push(checks[i]);
				break;
				
			case 'nationality':
				checks_static.push(checks[i]);
				break;
				
			case 'address':
				checks_static.push(checks[i]);
				break;
				
			case 'email':
				checks_static.push(checks[i]);
				break;
		}
	}
	
	for (i=0;i<checks_static.length;i++){
		if (checks_static[i].value==''){
			warns_texts[i].style.display='block';
			err++;
		}
		else{
			warns_texts[i].style.display='none';
		}
	}
	
	for (i=0;i<checks_boxes.length;i++){
		if (!checks_boxes[i].checked){
			check_err--;
		}
	}
	
	if (check_err>0){
		warns_checks.style.display='none';
	}
	else{
		err++;
		warns_checks.style.display='block';
	}

	if (err>0){
		return false;	
	}
	else{
		return true;
	}
}

/*
var navHover = function() {
	if (navigator.appName == 'Microsoft Internet Explorer') {
		if (document.getElementById('mainNav')){
			var lis = document.getElementById("mainNav").getElementsByTagName("LI");
			for (var i=0; i<lis.length; i++) {
				lis[i].onmouseover=function() {
					this.className+=" iehover";
				}
				lis[i].onmouseout=function() {
					this.className=this.className.replace(new RegExp(" iehover\\b"), "");
				}
			}
		}
	}
}

if (window.attachEvent != undefined) window.attachEvent("onload", navHover);
*/



var byHover = function() {
	if (document.getElementById('propertySearch')){
		var lis = document.getElementById("propertySearch").getElementsByTagName("LI");
		for (var i=0; i<lis.length; i++) {
			lis[i].onmouseover=function() {
				var uls = this.getElementsByTagName("UL");
				for (var p=0; p<uls.length; p++) {
					uls[p].style.display = 'block';
				}
				

			}
			lis[i].onmouseout=function() {
				var uls = this.getElementsByTagName("UL");
				for (var p=0; p<uls.length; p++) {
					uls[p].style.display = 'none';
				}
				
				
				
			}
		}
	}
}

if (window.attachEvent != undefined) window.attachEvent("onload", byHover);



//if (window.attachEvent) window.attachEvent("onload", navHover);

function moveThumbnails(direction, count) {
	$('arrowRight').disabled="disabled";
	$('arrowLeft').disabled="disabled";
	if (direction == 'right') {
		obj = $('thumbs');
		if (parseInt($('currentImage').value) > 0) {
			new Effect.Move(obj,{x:105, y:0, mode: 'relative'});
			$('currentImage').value = parseInt($('currentImage').value) - 1;
		}
	} else {
		obj = $('thumbs');
		if (parseInt($('currentImage').value) < parseInt($('imagesCount').value)  - count) {
			new Effect.Move(obj,{x:-105, y:0, mode: 'relative'});
			$('currentImage').value = parseInt($('currentImage').value) + 1;
		}
	}
	$('arrowRight').disabled="";
	$('arrowLeft').disabled="";
}

function ajaxGetImageData(rootURL, img_id) {
	var url = '/gallery_getimage_' + img_id + '.html';
	new Ajax.Request(url, {
	method: 'get',
	asynchronous: true,
	onSuccess: function(transport) {
		var fullimage = transport.responseText.evalJSON(true);
		if (fullimage.url != '') {
			imageDescription = fullimage.description+'<br /><a href="'+fullimage.url+'" title="'+fullimage.description+'">'+fullimage.url+'</a>';
		} else {
			imageDescription = fullimage.description;
		}

		$('description2').innerHTML = imageDescription;
		$('mainImage').hide();
		$('mainImage').setAttribute('src','/images/loading.gif');
		$('mainImage').show();
		StartPreload(rootURL + fullimage.filename,fullimage.description);
		
  }
	});
}

function removeInquiryTableRow(tr_id)
{
	$('fieldrow_' + tr_id).style.display = 'none';
	$('field[' + tr_id + '][deleted]').value = '1';
}

function addNewInquiryTableRow()
{
	var newfieldrow_html = '<tr id="newfieldrow_' + new_fieldrow_id + '">\n' +
						   '	<td>\n' +
						   '		<input type="text" name="newfield[' + new_fieldrow_id + '][caption]" size="35" class="flat_txtfield" value="New Field (' + new_fieldrow_id + ')" />\n' +
						   '	</td>\n' +
						   '	<td>\n' +
						   '		<textarea rows="4" cols="35" name="newfield[' + new_fieldrow_id + '][description]" class="flat_txtarea">New Field (' + new_fieldrow_id + ') Description</textarea>\n' +
						   '	</td>\n' +
						   '	<td>\n' +
						   '		<input type="radio" name="newfield[' + new_fieldrow_id + '][fieldtype_id]" value="1" checked="checked" />Text (Small)<br />\n' +
						   '		<input type="radio" name="newfield[' + new_fieldrow_id + '][fieldtype_id]" value="2" />Text (Large)<br />\n' +
						   '		<input type="radio" name="newfield[' + new_fieldrow_id + '][fieldtype_id]" value="3" />Numeric<br />\n' +
						   '	</td>\n' +
						   '	<td>\n' +
						   '		<input type="radio" name="newfield[' + new_fieldrow_id + '][required]" value="0" checked="checked" /> No <br />\n' +
						   '		<input type="radio" name="newfield[' + new_fieldrow_id + '][required]" value="1" /> Yes <br />\n' +
						   '	</td>\n' +
						   '	<td align="center">\n' +
						   '		<ul class="buttons">\n' +
						   '			<li>\n' +
						   '				<span class="delete"></span>\n' +
						   '					<input class="btn" type="button" value="Delete" onclick="removeNewInquiryTableRow(' + new_fieldrow_id + ')" />\n' +
						   '			</li>\n' +
						   '		</ul>\n' +
						   '	</td>\n' +
						   '</tr>\n';
	new Insertion.Bottom($('fieldrowTbody'), newfieldrow_html);
	new_fieldrow_id++;
}

function removeNewInquiryTableRow(tr_id)
{
	$('newfieldrow_' + tr_id).remove();
}

// Dep

function activeFormFields(el,val) {
	if (el.value == val ) {
		el.value = '';
	}
	el.className = 'hover';
	el.parentNode.className = 'hover';
}

function inactiveFormFields(el,val) {
	if (el.value == '' ) {
		el.value = val;
	}
	el.className = '';
	el.parentNode.className = '';

}

function monthChange(iMonth, iYear, field, selected)
{
	if(iMonth==2) {
		if(iYear%4==0)
			number = 29;
		else
			number = 28;
	}
	else if(iMonth==1 || iMonth==3 || iMonth==5 || iMonth==7 || iMonth==8 || iMonth==10 || iMonth==12) {
		number = 31;
	}
	else {
		number = 30;
	}
	$(field).options.length = 0;
	for(var i=0;i<=number;i++){
		if(i!=number) {
  			$(field).options[i] = new Option(i+1,i+1);
  		}
  		if(i==selected && selected!=0) {
  			$(field).options[i-1].selected=true;
  		}
	}
}

function showHideLang(whichLayer) {
  var elem, vis;
  if( document.getElementById ) // this is the way the standards work
    elem = document.getElementById( whichLayer );
  else if( document.all ) // this is the way old msie versions work
      elem = document.all[whichLayer];
  else if( document.layers ) // this is the way nn4 works
    elem = document.layers[whichLayer];
  vis = elem.style;
  // if the style.display value is blank we try to figure it out here
  if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)
    vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
  vis.display = (vis.display==''||vis.display=='block')?'none':'block';
}

function changeBannerLayout(bannerType)
{

	if (bannerType == 1) // regular banner
	{
		// clearing error messages
		$('errors').innerHTML = '';

		// visibility
		$('google_tr[1]').style.display = 'none';
		if($('google_tr[2]')){
			$('google_tr[2]').style.display = 'none';
		}
		
		$('url_tr').style.display = 'table-row';
		$('img_tr').style.display = 'table-row';
		if ($('currentimg_tr') != null) $('currentimg_tr').style.display = 'table-row';
		
		// disable position 4 && position 5
		//$('radio_pos1').checked = false;
		//$('radio_pos2').checked = false;
		//$('radio_pos3').checked = false;
		//$('radio_pos4').checked = false;
		//$('radio_pos5').checked = false;
		//$('radio_pos6').checked = false;
		
		// check position 1 if no position is checked
		//if (!$('radio_pos1').checked && !$('radio_pos2').checked && !$('radio_pos3').checked)
		//{
		//	$('radio_pos1').checked = true;
		//}
		
		// enable/disable content validation
		$('google_code[1]').setAttribute('rel', '');
		if($('google_code[2]')){
			$('google_code[2]').setAttribute('rel', '');
		}
		$('url').setAttribute('rel', 'validate');
		if ($('has_image') == null) $('file').setAttribute('rel', 'validate');
	}
	else // google adsense
	{
		// clearing error messages
		$('errors').innerHTML = '';
		
		// visibility
		$('google_tr[1]').style.display = 'table-row';
		if($('google_tr[2]')){
			$('google_tr[2]').style.display = 'table-row';
		}
		$('url_tr').style.display = 'none';
		$('img_tr').style.display = 'none';
		if ($('currentimg_tr') != null) $('currentimg_tr').style.display = 'none';
		
		// enable position 4 && position 5
		//$('radio_pos4').disabled = false;
		//$('radio_pos5').disabled = false;
		
		// enable/disable content validation
		$('google_code[1]').setAttribute('rel', 'validate');
		if($('google_code[2]')){
			$('google_code[2]').setAttribute('rel', 'validate');
		}
		$('url').setAttribute('rel', '');
		$('file').setAttribute('rel', '');
	}
}

function startLightBoxSlideshow(slideShowRel) {
	var tags = document.getElementsByTagName('a');
	var i = 0;
	var el = '';
	var rel = '';
	var res = '';
	for (i=0; i<tags.length; i++) {
		el = tags[i];
		rel = String(el.getAttribute('rel'));
		
		if ((rel.toLowerCase().match('lightbox'))){
			Lightbox.start(el);
			return false;
		}
	}
	return false;
}

function confirmSubmit(msg){
	var agree=confirm(msg);
	if (agree)
		return true ;
	else
		return false ;
}

//main navigation 
navHover = function() {
	if ($('rightNav')){
		var lis = $('rightNav').getElementsByTagName("LI");
		for (var i=0; i<lis.length; i++) {
			lis[i].onmouseover=function() {
				this.className="hover";
			}
			lis[i].onmouseout=function() {
				this.className="";
			}
		}
	}
}

Event.observe(window, 'load', blurLinks);
//Event.observe(window, 'load', formElementsStyle);

