$.noConflict();

var urlPath = 'http://www.apricus.com.au/wp-content/themes/apricus_theme/';
ajax_loader_image = urlPath + 'rebate_ajax_loader.gif';

var objectCall = null;

jQuery(document).ready(function() {

    //focus postCode text
    jQuery('#rebate_postCode').focus();

    resetData();

    //focus postCode text
    jQuery('#rebate_postCode').focusin(function(){
		jQuery(this).val('');
        resetData();
    });

    //keyup
	jQuery('#rebate_postCode').keyup(function(charCode){

		resetData();
		
		//<-,->,down,up,enter,esc,shift,ctrl,alt
		if(	charCode.keyCode!=46 && charCode.keyCode!=37
				&& charCode.keyCode!=39 && charCode.keyCode!=38
				&& charCode.keyCode!=40 && charCode.keyCode!=13
				&& charCode.keyCode!=27 && charCode.keyCode!=16
				&& charCode.keyCode!=17 && charCode.keyCode!=18){
	        validatePostCode();
		}
    });

	//select system type
	jQuery('#rebate_systemType').change(function(){
		validateData();
	});

	//select tank type
	jQuery('#rebate_tankType').change(function(){
		validateData();
	});
    

    jQuery('#myCalculateRebate').click(function(){
		calculateRebate();
    });

});

function validatePostCode()
{
	postCode = jQuery('#rebate_postCode').val();
	
	//do nothing if < 3 digit
	if(postCode.length <3) return true;
    if(!checkPostCode(postCode))
    {
        displayMessage('It seems you have entered an invalid post code.  Please try again.','rebate_postCode');
        return false;
    }

    //call ajax to check this postCode in range, if not
	if(objectCall!=null) objectCall.abort();
    objectCall = callAjax('myMessage',
							'rebate_check_post_code.php',
							'postCode=' + fixedEncodeURIComponent(postCode),
							checkPostCodeReturn,null);
	
    return true;
}
function checkPostCode(code)
{
    if (/^[0-9]{3,4}$/.test(code)) return true;
    return false;
}

var checkPostCodeReturn = function checkPostCodeReturn(data)
{
	if(data == '') return true;

	
	if(data == '1')
    {
		jQuery('#myMessage').hide('fast');
		jQuery('#rebate_systemType').removeAttr('disabled');
        jQuery('#rebate_tankType').removeAttr('disabled');

		displayMessageNew('systemTypeMessage','Please select your system type','rebate_systemType');
    }
    else
    {
        displayMessage(data,null,true);
    }

	return true;
}

function validateData()
{
    //possible unnessary check post code, since only select combo if post code valid
	//if(!validatePostCode()) return false;
	
	resetResult();

	systemType  = jQuery('#rebate_systemType').val();
    tankType    = jQuery('#rebate_tankType').val();

    if(systemType == '')
    {
       displayMessageNew('systemTypeMessage','Please select your system type','rebate_systemType');
       return false;
    }

    if(tankType == '')
    {
       displayMessageNew('tankTypeMessage','Please select your tank type','rebate_tankType');
       return false;
    }

    if(objectCall!=null) objectCall.abort();
    objectCall = callAjax('rebate_systemAvailable',
							'rebate_get_system_available.php',
							'systemType=' + fixedEncodeURIComponent(systemType) + '&tankType=' + fixedEncodeURIComponent(tankType),
							callbackGetSystemAvaiable,null);
	
	return true;
}

function callbackGetSystemAvaiable(data)
{
	//we shoul set height here
}

function calculateRebate()
{
	postCode	= jQuery('#rebate_postCode').val();
	systemType  = jQuery('#rebate_systemType').val();
    tankType    = jQuery('#rebate_tankType').val();
	

	if(postCode == '')
	{
		displayMessage('Please enter your post code','rebate_postCode');
		return false;
	}
    if(systemType == '')
    {
		displayMessageNew('systemTypeMessage','Please select your system type','rebate_systemType');
		return false;
    }

    if(tankType == '')
    {
		displayMessageNew('tankTypeMessage','Please select your tank type','rebate_tankType');
		return false;
    }

	//if have system Avaible list
	if(jQuery("input[name='rebate_productId']").length > 0)
	{
		if(jQuery("input[name='rebate_productId']:checked").length == 0)
		{
			displayMessageNew('systemAvailableMessage','Please select System that best suits you',null);
			jQuery("input[name='rebate_productId']")[0].focus();
			return false;
		}
	}

	productId = jQuery("input[name='rebate_productId']:checked").val();

	if(objectCall!=null) objectCall.abort();
    objectCall = callAjax('rebate_calculateResult',
							'rebate_calculate_result.php',
							'postCode=' + fixedEncodeURIComponent(postCode) + 
							'&productId=' + fixedEncodeURIComponent(productId) +
							'&systemType=' + fixedEncodeURIComponent(systemType),
							callbackGetResult,null);

	return true;
}
function callbackGetResult(data)
{
	jQuery('#rebate_calculateResult').fadeIn('slow');
}

function resetData()
{
    resetMessage();

	//select first data & disable
    jQuery('#rebate_systemType').find('option:first').attr('selected', 'selected').parent('select');
    jQuery('#rebate_tankType').find('option:first').attr('selected', 'selected').parent('select');
    jQuery('#rebate_systemType').attr('disabled','disabled');
    jQuery('#rebate_tankType').attr('disabled','disabled');

	//reset system available list & calculate result
	resetResult();
    
}

function resetResult()
{
	//reset other
    jQuery('#rebate_systemAvailable').html('');
	jQuery('#rebate_calculateResult').html('');
}

function displayMessage(mess,id,hide)
{
    if(id!=null)
        jQuery('#' + id).focus();
	if(hide == null)
		jQuery('#myMessage').html(mess).fadeIn('slow').delay(500).fadeOut('slow');
	else
		jQuery('#myMessage').html(mess).fadeIn('slow');

	window.location = '#myTopLink';

}

function displayMessageNew(div,mess,id)
{
	jQuery('#' + id).focus();
	jQuery('#' + div).html(mess).fadeIn('slow').delay(500).fadeOut('slow');
	window.location = '#myTopLink';
}

function resetMessage()
{
	//reset message
	jQuery('#myMessage').hide('fast');
	jQuery('#systemTypeMessage').hide('fast');
	jQuery('#tankTypeMessage').hide('fast');
}


function callAjax(id_div_content,link_action,param,callback_success,callback_error,displayData)
{
    if (param == null) param = '';
    return jQuery.ajax({
						url: urlPath + link_action,
						type: "POST",
						data: param,
						dataType: 'text',
						timeout: 60000,
						beforeSend: function(){
                                if(id_div_content != null)
                                    jQuery('#'+ id_div_content).html('<img src="' + ajax_loader_image +'" />');
						},
						error: function(data){
                                if (callback_error != null){
                                    eval( callback_error + '();');
                                }
                        },
					    success: function(data) {
                                if( displayData == null || displayData == false)
                                {
                                    if(id_div_content != null)
                                        jQuery('#'+ id_div_content).html(data);
                                }
                                else
                                   displayMessageBox(data);

                                if (callback_success != null) {
                                    callback_success(data);
                                }
						}
	});
}
function fixedEncodeURIComponent (str) {
    return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28'). replace(/\)/g, '%29').replace(/\*/g, '%2A');
}

//var t= document.getElementsByName('rebate_productId')
//var n = t.length;
//for (i = 0 ; i < n ; i++){
// if(t[i].checked) alert(t[i].value);
//}
