var errorMsg = "<div style='float:left;'>System Error!</div>";


/* Geneal or Common Function */
function ajaxFormSubmit(url, frmId, setResult, param)
{
    if (frmId != '') {
        var formObject = ajax.byId(frmId);
        YAHOO.util.Connect.setForm(formObject);
    }
	if ((param == null)||(param == "")) {
		param = "dummy=";
	}
    YAHOO.util.Connect.asyncRequest('POST', url, setResult, param);
}

var ajax = {
    byId : function(id) {
        return document.getElementById(id);
    }
};

/*
	Function for Handset
*/
function showHandsetSelector(handsetModel, vendorId) {
    ajax.byId('content').style.display = 'none';
    ajax.byId("handsetSelector").style.display = 'block';
    ajax.byId("handsetSelector").innerHTML = loadingMsg;
    ajaxFormSubmit('/handsetSelector.do', '', handsetCallback, 'userAgentId=' + handsetModel + '&vendorId=' + vendorId);
}

var handsetCallback = {
    success: function(o) {
        var data = o.responseText;
        if (data.search(/handsetBack/i) > 0) {
            ajax.byId('phoneselector').innerHTML = data;
            if (ajax.byId('handsetSelector')) {
                ajax.byId('handsetSelector').style.display = 'none';
                ajax.byId('handsetSelector').innerHTML = '';
            }
            if (ajax.byId('handsetSelector1')) {
                ajax.byId('handsetSelector1').style.display = 'none';
                ajax.byId('handsetSelector1').innerHTML = '';
            }
            if (ajax.byId('handsetVendorsRow')) {
                ajax.byId('handsetVendorsRow').style.display = 'none';
                ajax.byId('handseListRow').style.display = 'none';
            }
            ajax.byId('content').style.display = 'block';
        } else {
            ajax.byId('handsetSelector').innerHTML = data;
            if (ajax.byId('handsetSelector1')) {
                ajax.byId('handsetSelector1').innerHTML = '';
            }
        }
    },
    failure: function(o) {

    }
};

/*
	Function for Handset order page
*/
function showOrderHandsetSelector() {
    ajaxFormSubmit('/handsetSelector.do', '', showOrderHandsetSelectorResult);
}

var showOrderHandsetSelectorResult = {
    success:  function(o) {
        ajax.byId('handsetSelector1').innerHTML = o.responseText;
    },
    failure: function(o) {
        handleErr('targetDiv', o.responseText);
    }
};

function showSupportedHandsetComboBox(frmId)
{
    ajaxFormSubmit('/supportedHandset.do', frmId, setSupportedHandsetResult)

    ajax.byId("vendorId").disabled = true;
    ajax.byId("targetDiv").innerHTML = loadingMsg;
    //'<img src="/images/loading.gif" width="58" height="16" style="margin-top:6px;">';
    return false;
}

var setSupportedHandsetResult = {
    success: function(o) {
        ajax.byId("targetDiv").innerHTML = o.responseText;
        ajax.byId("vendorId").disabled = false;
    },
    failure: function(o) {
        handleErr('targetDiv', o.responseText);
    }
};

function updateTop() {
    ajaxFormSubmit('/selectedHandset.do', '', updateTopResult);
}

var updateTopResult = {
    success: function(o) {
        ajax.byId('phoneselector').innerHTML = o.responseText;
    },
    failure: function(o) {
        handleErr('phoneselector', o.responseText);
    }
};

function showHandsetVendorsCombo() {
    ajaxFormSubmit('/handsetVendors.do', '', showHandsetVendorsComboResult);
}
var showHandsetVendorsComboResult = {
    success: function(o) {
        ajax.byId('handsetVendors').innerHTML = o.responseText;
    },
    failure: function(o) {
        handleErr('handsetVendors', o.responseText);
    }
};

function handleErr(target, error) {
    ajax.byId(target).innerHTML = errorMsg;
}

function updateRegister() {
    ajaxFormSubmit('/promoteCampaign.do', '', updateRegisterResult);
}

var updateRegisterResult = {
    success: function(o) {
        var data = o.responseText;
        document.getElementById('register').innerHTML = data;
    },
    failure: function(o) {
        document.getElementById('register').innerHTML = errorMsg;
    }
};

function submitPornoGraphic() {
    ajaxFormSubmit('/pornoGraphic.do', '', pornoGraphicResult, 'over18=true');
}

var pornoGraphicResult = {
    success:  function(o) {
        ajax.byId('pornoGraphic').style.display = 'none';
        ajax.byId('content').style.display = 'block';
        ajax.byId('inner_content').style.display = 'block';
    },
    failure: function(o) {
        handleErr('pornoGraphic', o.responseText);
    }
};

var ajaxCount = 180;
function updatePassword() {
    ajaxCount --;
    ajaxFormSubmit('/ajaxPassword.do', 'ajaxPassword', updatePasswordResult, '');
}

var updatePasswordResult = {
    success: function(o) {
        var data = o.responseText;
//        alert(data);
        if (data.toString().indexOf("<div id=\"passwordStatus\">-1</div>") >= 0) {
            if (ajaxCount >= 0)
                setTimeout('updatePassword()', 20000);
        }
        else if (data.toString().indexOf("<div id=\"passwordStatus\">-100</div>") >= 0) {
            ajaxCount = 0;
        }
        else if (data.toString().indexOf("<div id=\"passwordStatus\">0</div>") >= 0 || data.toString().indexOf("<div id=\"passwordStatus\">1</div>") >= 0) {
            disPopup();
            document.forms["ajaxWelcomeInput"].submit();
        }
    },
    failure: function(o) {
        if (ajaxCount >= 0)
            setTimeout('updatePassword()', 20000);
    }
};

var resultTdId;
function clearCache( url, resultId ){
	resultTdId = resultId
	document.getElementById(resultTdId).innerHTML = "Clearning!";
	ajaxFormSubmit(url, '', clearCacheRedult, '');
}

var clearCacheRedult = {
	success:function(o){
		document.getElementById(resultTdId).innerHTML = "Finished!";
	},
	failure:function(o){}
};