function flashIsEnabled() {
   var isFlashEnabled = false; 
   if (typeof(navigator.plugins)!="undefined" 
       && typeof(navigator.plugins["Shockwave Flash"])=="object" 
   ) { 
      isFlashEnabled = true; 
   } else if (typeof  window.ActiveXObject !=  "undefined") { 
      try { 
         if (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) { 
            isFlashEnabled = true; 
         } 
      } catch(e) {}; 
   }; 
   return isFlashEnabled; 
} 
function switchPanes(){
	jQuery('#topPanel').toggleClass('top-panel-loan').toggleClass('top-panel-mortgage');
	if(jQuery('#topPanel').find('TD:eq(0)').width() == 6){
		jQuery('#topPanel').find('TD:eq(0)').width(150).end().find('TD:eq(2)').width(6);
	} else {
		jQuery('#topPanel').find('TD:eq(0)').width(6).end().find('TD:eq(2)').width(150);
	}
	jQuery('.panelItem').toggle();
}
function checkDefaultVal(obj, isBlur){
	var obj = jQuery(obj);
	if(isBlur){
		if(obj.val() == '')obj.val(obj.attr('alt')).addClass('disabled');
		generateCode();
	} else {
		if (obj.val() == obj.attr('alt')) obj.val('').removeClass('disabled');
	};
};
function initRatesFloatLayer(){
	var viewportWidth  = jQuery(window).width();
	var viewportHeight = jQuery(window).height();

	var documentWidth  = 0;
	var documentHeight = 0;
	var viewportLeft   = 0;
	var viewportTop    = 0;

	if(document.body){
		documentWidth  = document.body.scrollWidth;
		documentHeight = document.body.scrollHeight;
		viewportLeft   = document.body.scrollLeft;
		viewportTop    = document.body.scrollTop;
	};
	if(document.documentElement){
		documentWidth  = Math.min(documentWidth, document.documentElement.scrollWidth);
		documentHeight = Math.max(documentHeight, document.documentElement.scrollHeight);
		viewportLeft   = Math.max(viewportLeft, document.documentElement.scrollLeft);
		viewportTop    = Math.max(viewportTop, document.documentElement.scrollTop);
	};

	var shaderWidth = Math.max(documentWidth, viewportWidth);
	var shaderHeight = Math.max(documentHeight, viewportHeight);
	jQuery('#MLCalcRatesShader')
		.css({
			width:shaderWidth,
			height:shaderHeight,
			top:0,
			left:0,
			opacity:'0.5'
		})
		.show()
		.click(function(){
			jQuery('#MLCalcRatesShader').fadeOut(300);
			jQuery('#MLCalcRatesHolder, #MLCalcRatesClose, #MLCalcRatesFrame').hide();
			showObjects();
		});

	var holderLeft = parseInt((viewportWidth - 770) / 2) + viewportLeft;
	var holderTop  = parseInt((viewportHeight - 440) / 2) + viewportTop;
	if(holderLeft < 0) holderLeft = 0;
	if(holderTop < 0) holderTop = 0;
	hideObjects(holderLeft, holderTop, holderLeft + 770, holderTop + 440);
	jQuery('#MLCalcRatesHolder')
		.css({
			width:770,
			height:440,
			top:holderTop,
			left:holderLeft
		})
		.show();

	if(jQuery('#MLCalcRatesHolder #MLCalcRatesFrame').size() < 1){
		jQuery('#MLCalcRatesHolder').html('<iframe src="#" scrolling="no" id="MLCalcRatesFrame" name="MLCalcRatesFrame" width="0" height="0" frameborder="0" allowtransparency="true" style="background-color: transparent; display: none"></iframe><iframe id="garbageRatesFrame" style="display:none"></iframe>');
	};
	jQuery('#MLCalcRatesHolder').find('#MLCalcRatesFrame').css({width:770, height:440}).load(function(){
		jQuery(this).show();
		jQuery('#MLCalcRatesHolder #garbageRatesFrame').attr('src', '');
		jQuery('#MLCalcRatesClose').show().css({height:25, width:25})
			.css({top:holderTop, left:holderLeft+jQuery('#MLCalcRatesHolder').width()-2-jQuery('#MLCalcRatesClose').width()})
			.click(function(){
				jQuery('#MLCalcRatesShader').fadeOut(300);
				jQuery('#MLCalcRatesHolder, #MLCalcRatesClose, #MLCalcRatesFrame').hide();
				showObjects();
			}).hover(function(){
				jQuery(this).css({background:'#F5F5F5', color:'#808080'});
			}, function(){
				jQuery(this).css({background:'#D5D5D5', color:'#F5F5F5'});
			});
	});
};
function hideObjects(X1, Y1, X2, Y2){
	jQuery('OBJECT').each(function(){
		var offset = jQuery(this).offset();
		oX1 = offset.left;
		oY1 = offset.top;
		oX2 = oX1 + jQuery(this).width();
		oY2 = oY1 + jQuery(this).height();
		if(
			((X1 > oX1 && X1 < oX2) || (X2 > oX1 && X2 < oX2)) && ((Y1 > oY1 && Y1 < oY2) || (Y2 > oY1 && Y2 < oY2)) ||
			((oX1 > X1 && oX1 < X2) || (oX2 > X1 && oX2 < X2)) && ((oY1 > Y1 && oY1 < Y2) || (oY2 > Y1 && oY2 < Y2))
		){
			jQuery(this).attr('originalVisibility', jQuery(this).css('visibility')).css('visibility', 'hidden').attr('hiddenBy', 'MLCalc');
		}
	});
	if (jQuery.browser == 'msie' && jQuery.browser.version < 7){
		jQuery('SELECT').each(function(){
			jQuery(this).attr('originalVisibility', jQuery(this).css('visibility')).css('visibility', 'hidden').attr('hiddenBy', 'MLCalc');
		});
	};
};
function showObjects(){
	jQuery('OBJECT[hiddenBy=MLCalc]').each(function(){
		jQuery(this).css('visibility', jQuery(this).attr('originalVisibility')).removeAttr('originalVisibility').removeAttr('hiddenBy');
	});
	if (jQuery.browser == 'msie' && jQuery.browser.version < 7){
		jQuery('SELECT[hiddenBy=MLCalc]').each(function(){
			jQuery(this).css('visibility', jQuery(this).attr('originalVisibility')).removeAttr('originalVisibility').removeAttr('hiddenBy');
		});
	}
};
function checkCustomCurrency(isBlur){
	if(isBlur){
		if(jQuery('INPUT[name=currency_code]').val() == ''){
			jQuery('INPUT[name=currency_code]').val('Rp, AUD').addClass('disabled');
		};
	} else {
		if (jQuery('INPUT[name=currency_code]').val() == 'Rp, AUD'){
			jQuery('INPUT[name=currency_code]').val('').removeClass('disabled');
		};
	};
};
function checkCurrency(){
	if(jQuery('SELECT[name=currency_code_selector]').val() == 'custom'){
		jQuery('INPUT[name=currency_code]').css('visibility', 'visible');
		if (jQuery('INPUT[name=currency_code]').val().search(/usd|eur|gbp|custom/i) != -1) jQuery('INPUT[name=currency_code]').val('');
		checkCustomCurrency(true);
	} else {
		jQuery('INPUT[name=currency_code]').val(jQuery('SELECT[name=currency_code_selector]').val()).css('visibility', 'hidden');
	};
};
function checkLocation(){
	var location = String(window.location);
	if (location.search(/#loan$/i) != -1) {
		jQuery('.panelItem').toggle();
		document.location = '#loan';
	} else if (location.search(/#(mortgage|loan).+?/i) != -1) {
		location = location.replace(/^.+#(.+)$/, "$1");
		var params = location.split('-');
		switch (params[0]) {
			case 'mortgage':
				jQuery('#mortgageForm').find('INPUT[name=ma]').val(params[1]);
				jQuery('#mortgageForm').find('INPUT[name=dp]').val(params[2]);
				jQuery('#mortgageForm').find('INPUT[name=mt]').val(params[3]);
				jQuery('#mortgageForm').find('INPUT[name=ir]').val(params[4]);
				jQuery('#mortgageForm').find('INPUT[name=pt]').val(params[5]);
				jQuery('#mortgageForm').find('INPUT[name=pi]').val(params[6]);
				jQuery('#mortgageForm').find('INPUT[name=mi]').val(params[7]);
				jQuery('#mortgageForm').find('SELECT[name=sm]').val(params[8]);
				jQuery('#mortgageForm').find('SELECT[name=sy]').val(params[9]);
				jQuery('#mortgageForm').find('INPUT[name=as][value=' + params[10] + ']').attr('checked', true);
				jQuery('#mortgageForm').attr('action', window.location);
				jQuery('#mortgageForm').submit();
			break;

			case 'loan':
				jQuery('#loanForm').find('INPUT[name=la]').val(params[1]);
				jQuery('#loanForm').find('INPUT[name=lt]').val(params[2]);
				jQuery('#loanForm').find('INPUT[name=ir]').val(params[3]);
				jQuery('#loanForm').find('SELECT[name=sm]').val(params[4]);
				jQuery('#loanForm').find('SELECT[name=sy]').val(params[5]);
				jQuery('#loanForm').find('INPUT[name=as][value=' + params[6] + ']').attr('checked', true);
				jQuery('#loanForm').attr('action', window.location);
				jQuery('#loanForm').submit();
			break;
		};
	};
};

function showHelp(helpId){
	var viewportWidth  = jQuery(window).width();
	var viewportHeight = jQuery(window).height();

	var documentWidth  = 0;
	var documentHeight = 0;
	var viewportLeft   = 0;
	var viewportTop    = 0;

	if(document.body){
		documentWidth  = document.body.scrollWidth;
		documentHeight = document.body.scrollHeight;
		viewportLeft   = document.body.scrollLeft;
		viewportTop    = document.body.scrollTop;
	}
	if(document.documentElement){
		documentWidth  = Math.min(documentWidth, document.documentElement.scrollWidth);
		documentHeight = Math.max(documentHeight, document.documentElement.scrollHeight);
		viewportLeft   = Math.max(viewportLeft, document.documentElement.scrollLeft);
		viewportTop    = Math.max(viewportTop, document.documentElement.scrollTop);
	}

	var shaderWidth = Math.max(documentWidth, viewportWidth);
	var shaderHeight = Math.max(documentHeight, viewportHeight);

	jQuery(helpId).show();
	jQuery('.hide').click(function(){
			jQuery('#Shader').fadeOut(300);
			jQuery('#Holder').hide();
			jQuery(helpId).hide();
		});

	jQuery('#Shader')
		.css({
			width:shaderWidth,
			height:shaderHeight,
			top:0,
			left:0,
			opacity:'0.5'
		})
		.show()
		.click(function(){
			jQuery('#Shader').fadeOut(300);
			jQuery('#Holder').hide();
			jQuery(helpId).hide();
		});

	var holderLeft = parseInt((viewportWidth - 680) / 2) + viewportLeft;
	var holderTop  = parseInt((viewportHeight - jQuery('#Holder').height()) / 2) + viewportTop;
	if(holderLeft < 0) holderLeft = 0;
	if(holderTop < 0) holderTop = 0;
	jQuery('#Holder')
		.css({
			top:holderTop,
			left:holderLeft
		})
		.show();
};

function initialize() {
	jQuery('.help A').click(function(){
		showHelp(jQuery(this).attr('href'));
	});

	jQuery('#loanForm').bind('submit', function(){

		var action = SITE_URL + '/#';

		action += jQuery(this).find('INPUT[name=ml]').val();
		action += '-' + jQuery(this).find('INPUT[name=la]').val().replace(/,/i, '');
		action += '-' + jQuery(this).find('INPUT[name=lt]').val();
		action += '-' + jQuery(this).find('INPUT[name=ir]').val();
		action += '-' + jQuery(this).find('SELECT[name=sm]').val();
		action += '-' + jQuery(this).find('SELECT[name=sy]').val();
		action += '-' + jQuery(this).find('INPUT[name=as]:checked').val();

	   jQuery(this).attr('action', action);

		return validateForm(jQuery(this));
	});

	jQuery('#mortgageForm').bind('submit', function(){

		var action = SITE_URL + '/#';

		action += jQuery(this).find('INPUT[name=ml]').val();
		action += '-' + jQuery(this).find('INPUT[name=ma]').val().replace(/,/i, '');
		action += '-' + jQuery(this).find('INPUT[name=dp]').val();
		action += '-' + jQuery(this).find('INPUT[name=mt]').val();
		action += '-' + jQuery(this).find('INPUT[name=ir]').val();
		action += '-' + jQuery(this).find('INPUT[name=pt]').val().replace(/,/i, '');
		action += '-' + jQuery(this).find('INPUT[name=pi]').val().replace(/,/i, '');
		action += '-' + jQuery(this).find('INPUT[name=mi]').val();
		action += '-' + jQuery(this).find('SELECT[name=sm]').val();
		action += '-' + jQuery(this).find('SELECT[name=sy]').val();
		action += '-' + jQuery(this).find('INPUT[name=as]:checked').val();

	   jQuery(this).attr('action', action);

		return validateForm(jQuery(this));
	});

	jQuery('#mortgageForm #dp INPUT').bind('keyup', function(){return calcDPValue()});
	jQuery('#mortgageForm #ma INPUT').bind('keyup', function(){return calcDPValue()});

	jQuery('#mortgageForm #dp INPUT').trigger('keyup');

	jQuery('#schedule TR:odd, #variables TR:odd, #rates TR:odd').addClass('odd');
	jQuery('#schedule TR:even, #variables TR:even, #rates TR:even').addClass('even');

	jQuery('#schedule TR:not(:first,:last), #variables TR:not(:first), #rates TR:not(:first)').hover(
		function(){
			jQuery(this).addClass('hover');
		},
		function(){
			jQuery(this).removeClass('hover')
		}
	);
	jQuery('#show_calcs').click(function(){
		jQuery('#show_calcs IMG').animate({height: 0}, 250, '', function(){jQuery(this).hide()});
		jQuery('#calcsHolder TD').animate({height: jQuery('#calcsHolder').attr('ctheight')}, 250, '', function(){
			jQuery(this).append(jQuery('#calcsTable').fadeIn(250));
		});
		return false;
	});
	jQuery('#widgetConfigForm').submit(function(){
		jQuery('#paramForm INPUT:image')
			.attr('src', THEME_URL + '/images/button-preview-get-code-disabled.png')
			.attr('disabled', 'disabled');
	});
	if (jQuery('#paramForm INPUT:image').size()) {
		var img3 = new Image(154,29);
		img3.src = THEME_URL + '/images/button-preview-get-code-disabled.png';
	};

	// initialize rates
	jQuery('body').prepend('<div id="MLCalcRatesHolder"></div><div id="MLCalcRatesShader"></div><div id="MLCalcRatesClose">X</div>');
	jQuery('#mortgageForm .ratesLink, #loanForm .ratesLink').bind('click', function(){
		initRatesFloatLayer();
		jQuery('#MLCalcRatesFormTrendXX').trigger('submit');
	});
	
	//lightbox
	if(jQuery(".lightbox").length > 0){
		jQuery(".lightbox").lightBox({
			imageLoading: THEME_URL + '/images/lightbox-ico-loading.gif',
			imageBtnClose: THEME_URL + '/images/lightbox-btn-close.gif',
			imageBtnPrev: THEME_URL + '/images/lightbox-btn-prev.gif',
			imageBtnNext: THEME_URL + '/images/lightbox-btn-next.gif',
			imageBlank: THEME_URL + '/images/lightbox-blank.gif'
		});
	};
	
	//rating stars
	jQuery('#rateStars').raty({
		path: THEME_URL + '/images/',
		start: RATING.score,
		readOnly: (RATING.status == 'ALREADY_VOTED' ? true : false),
		click: function(score, evt){
			jQuery('.rateVotes').fadeOut(function(){
				$.getJSON(SITE_URL + '/rate.php?score='+score+'&sectionId='+SECTION, function(data){
					jQuery('.rateVotes').html('(' + data.votes + ' votes)').fadeIn();
				});
			});
			jQuery('#rateStars').raty('readOnly', true);
		}
	});
};
function validateForm(form){
	form.find('.valid').each(function(){
		var val = parseFloat(jQuery(this).val().replace(/[^0-9\.]/g));
		if(isNaN(val) || val < jQuery(this).attr('minval') || val > jQuery(this).attr('maxval')){
			alert(jQuery(this).attr('errmsg'));
			jQuery(this).select();
			return false;
		}
	});
	form.find('.button-calculate').removeClass('button-calculate').addClass('button-calculate-disabled').removeClass('action');
	return true;
};

function formatNum(num){
	return num.toString().replace(/(\d+)(\d{3})/, function(num, num1, num2){
		return ((num1.length < 3) ? num1 : formatNum(num1)) + "," + num2;
	});
};
function calcDPValue(){
	var ma = parseFloat(jQuery('#mortgageForm #ma INPUT').val().replace(/[^0-9\.]/g, ''));
	var dp = parseFloat(jQuery('#mortgageForm #dp INPUT').val());
	if(dp < 100) jQuery('#mortgageForm #downPaymentValue').html('($' + formatNum(Math.round(ma * dp / 100)) + ')');
	if(dp >= 20){
		jQuery('#mortgageForm #mi *').attr('disabled', 'disabled').addClass('disabled');
	} else {
		jQuery('#mortgageForm #mi *').removeAttr('disabled').removeClass('disabled');
	};
};
