var isIE6 = (jQuery.browser.msie && jQuery.browser.version == '6.0');

/**
 * common
 *
 */
$(function() {
	// remove the drag for textarea on ff4+ safari etc...
	$('textarea').css('resize', 'none');
	
});



// home page's quotes
$(function() {
	var $testimonial = $('#blockquote-list');
	if ( $testimonial.size() ) {
		$testimonial.quotator({
			'speed' : 10000,
			'json': "./js/quotator_quotes.js"
		});
	}
});



/**
 * the slider
 *
 */
$(function() {
	var $container = $('#slider-content');
	if ( !$container.size() ) return false;
	
	var $nav = $('#slider-nav');
	
	$container.find('div.innerContent').cycle({
		pager: $nav,
		speed: 1000,
		timeout: 5000
	});
	
	var navGoLeft = parseInt($nav.outerWidth() / 2);
	$nav.css({left:'50%', marginLeft:'-' + navGoLeft + 'px'});
});



/**
 * perloading
 *
 */
$(function() {
	var bindHandle = function() {
		if ( isIE6 ) {
			$(this).parent().hover(function() {
				$(this).find('span').show();
			}, function() {
				$(this).find('span').hide();
			});	
		}
	};
	
	// home page
	var $vediobox = $('#vediobox');
	if ( $vediobox.size() ) {
		$vediobox.find('img').preloading();
	}
	
	
	// gallery page
	var $gallery = $('#gallery-list');
	if ( $gallery.size() ) {
		$gallery.find('img').preloading({
			finish: bindHandle
		});
	}
	
	
	// villas
	var $villas = $('#villas-list');
	if ( $villas.size() ) {
		$villas.find('div.img img').preloading();
	}
	
	// services
	var $services = $('#services-list');
	if ( $services.size() ) {
		$services.find('div.img img').preloading();
	}
	
	// package
	var $packages = $('#packages-list');
	if ( $packages.size() ) {
		$packages.find('div.img img').preloading();
	}
	
	// individual
	var $dom = $('div.page-individual div.page-thumnail img, div.page-individual div.gallery-list img');
	if ( $dom.size() ) {
		$dom.preloading({
			finish: bindHandle
		});
	}
	
	$('div.page-individual div.page-thumnail a[rel=fancybox], div.page-individual div.gallery-list a').fancybox({
		titleShow: true
	});
	
});

/**
 * fancybox for gallery
 *
 */
$(function() {
	var $list = $('#gallery-list a');
	if ( !$list.size() ) return false;
	
	$list.fancybox({
		titleShow: true
	});
});



/**
 * open/off more info for page packagelist
 *
 */
$(function() {
	var $container = $('#packages-list');
	if ( !$container.size() ) return false;
	
	$container.find('a.get-more-info').click(function() {
		var _this = $(this);
		var $more = _this.parent().parent().find('.more-info');
		if ( $more.size() ) {
			if ( _this.hasClass('get-more-info-open') ) {
				_this.removeClass('get-more-info-open');
				if ( isIE6 ) {
					$more.hide();
				}
			} else {
				_this.addClass('get-more-info-open');
				if ( isIE6 ) {
					$more.show();
				}
			}
			if ( !isIE6 ) {
				$more.slideToggle();
			}
		}
	});
});



/**
 * form contact
 *
 */
$(function() {
	var $form = $('form.form-contact');
	if ( !$form.size() ) return false;
	
	var $inputs = {};
	// get all the input
	var $inputs = {
		name: {
			item:  $form.find('div.item-name'),
			input: $form.find('input[name=name]')
		},
		email: {
			item:  $form.find('div.item-email'),
			input: $form.find('input[name=email]')
		},
		phone: {
			item:  $form.find('div.item-phone'),
			input: $form.find('input[name=phone]')
		},
		message: {
			item:  $form.find('div.item-message'),
			input: $form.find('textarea[name=message]')
		},
		button: {
			input: $form.find('input.button')
		},
		all: $form.find('input, textarea')
	};
	
	// button hover effect for ie6
	/*if ( isIE6 ) {
		$inputs.button.input.hover(function() {
			$(this).addClass('button-hovered');
		}, function() {
			$(this).removeClass('button-hovered');
		});
	}*/
	
	// show the warn
	var noticeshow = function(html) {
		$notice.html(html).animate({height: '46px'}, 369);
		setTimeout(function() {
			$notice.animate({height:'0'}, 369, function() {
				$notice.hide();
			});
		}, 5000);
	};
	
	// email success
	var mailSuccess = function() {
		$form.parent().html('<div class="mail-complete-message">' + arguments[0] + '</div>');
	};
	
	// email fail
	var mailFail = function() {
		$form.parent().html('<div class="mail-complete-message mail-message-error">' + (arguments[0] ? arguments[0] : 'Unkown Error.') + '</div>');
	};
	
	// do not autocomplete
	$form.attr('autocomplete', 'off');
	
	$form.submit(function() {
		$form.find('div.item-warn').removeClass('item-warn');
		$inputs.all.attr('disabled', 'disabled');
		
		// ajax send email
		$.post('ajax.sendmail.php', {
			action: 'leavemessage',
			name: $inputs.name.input.val(),
			email: $inputs.email.input.val(),
			phone: $inputs.phone.input.val(),
			content: $inputs.message.input.val()
		}, function(data) {
			$inputs.all.removeAttr('disabled');
			
			if ( data == '' ) {
				mailFail();
				return false;
			}
			var obj = eval('(' + data + ')');
			
			// mail success
			if ( obj.status == '1' ) {
				$inputs['name']['item'].addClass('item-success');
				$inputs['email']['item'].addClass('item-success');
				$inputs['phone']['item'].addClass('item-success');
				$inputs['message']['item'].addClass('item-success');
				setTimeout(function() {
					$inputs['name']['input'].val('');
					$inputs['email']['input'].val('');
					$inputs['phone']['input'].val('');
					$inputs['message']['input'].val('');
				}, 1000);
				return false;
			}
			
			if ( obj.status == '-1' ) {
				if ( obj.error ) {
					// infomation incomplete
					for ( var x in obj.error ) {
						$inputs[x]['item'].addClass('item-warn');
					}
				} else {
					// mail fail
					mailFail(obj.message);
				}
				return false;
			}
			
			mailFail(obj.message);
			return false;
		});
		
		return false;
	});
});



/**
 * home subscribe
 *
 */
$(function() {
	var $form    = $('#subscribe form');
	if ( !$form.size() ) return false;
	if ( $form.hasClass('bok') ) {
		return false;
	}
	
	$form.attr('autocomplete', 'off');
	
	var $input   = $form.find('input.subscribe-email');
	var $button  = $form.find('input.button');
	var $tooltip = $form.find('div.success');
	
	// button hover effect
	if ( isIE6 ) {
		$button.hover(function() {
			$(this).addClass('button-hovered');
		}, function() {
			$(this).removeClass('button-hovered');
		});
	}
	
	// bind the input event
	$input.inputInit({
		content: 'insert email'
	});
	
	// form submit
	$form.submit(function() {
		$tooltip.addClass('loading').show();
		$input.attr('readonly', 'readonly');
		$button.attr('disabled', 'disabled');
		var url = $form.attr('action');
		var $email = $form.find('input.subscribe-email');
		
		var data = {
			url: url,
			key: $email.attr('name'),
			value: $email.val()
		}
		
		// ajax submit the subscribe
		$.post('./subscribe.php', data, function() {
			if ( arguments[0] == '' ) {
				$tooltip.hide();
				return false;
			}
			
			var obj = eval('(' + arguments[0] + ')');
			if ( obj.status == '1' ) {
				$tooltip.removeClass('loading');
				return false;
			}
			
			$tooltip.html('');
			$tooltip.hide();
			alert(obj.message);
			$input.removeAttr('readonly');
			$button.removeAttr('disabled');
		});
		
		$form.hasClass('bok');
		return false;
	});
});
