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);
    }
};

var innerDivId = "mainContent";
var handsetDivId = "handsetSelector";

function setLoadingMsg(localeId, styleId, styleClass){
    return '<div class="'+styleClass+'"><img src="/style/'+localeId+'/'+styleId+'/images/loading.gif"></div>';
}
/*
	Function for Handset
*/
function showHandsetSelector(handsetModel, vendorId, handsetOperator, localeId, styleId) {
    hideItems();
    if (handsetDivId != "handsetSelector1") {
        ajax.byId(innerDivId).style.display = 'none';
    }
    ajax.byId(handsetDivId).style.display = 'block';
    ajax.byId(handsetDivId).innerHTML = setLoadingMsg(localeId, styleId, 'loadingHandset');
    ajaxFormSubmit('/handsetSelector.do', '', handsetCallback, 'userAgentId=' + handsetModel + '&vendorId=' + vendorId + '&handsetOperatorId=' + handsetOperator);
}

function hideItems() {
    hideBlock('prelisten');
}

var handsetCallback = {
    success: function(o) {
        var data = o.responseText;
        if (data.search(/handsetBack/i) > 0) {
            //ajax.byId('topBanner').innerHTML = data;
            //window.location.reload();
            if (ajax.byId('downloadPage') || ajax.byId('signupform') || ajax.byId('registerform')) {
                window.location.reload();
            } else {
                ajax.byId('topitemsub').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(innerDivId).style.display = 'block';
                if (handsetDivId == "handsetSelector1") {
                    ajax.byId("content2").style.display = 'block';
                }
                handsetDivId = "handsetSelector";
            }// reset to default upon successful selection
        } else {
            // handsetSelector1 is inside mainContent
            if (handsetDivId == "handsetSelector1") {
                ajax.byId(innerDivId).style.display = 'block';
            }
            ajax.byId(handsetDivId).innerHTML = data;
        }
    },
    failure: function(o) {

    }
};

/*
	Function for Handset order page
*/
function showOrderHandsetSelector(divId, localeId, styleId) {
    ajaxFormSubmit('/handsetSelector.do', '', showOrderHandsetSelectorResult);
    ajax.byId(divId).innerHTML = setLoadingMsg(localeId, styleId, 'loadingHandset');
    return false;
}

var showOrderHandsetSelectorResult = {
    success:  function(o) {
        var data = o.responseText
        ajax.byId('handsetSelector1').innerHTML = data;
        handsetDivId = 'handsetSelector1';
    },
    failure: function(o) {
        ajax.byId('handsetModel').innerHTML = errorMsg;
    }
};

function showSupportedHandsetComboBox(frmId, localeId, styleId){
    ajaxFormSubmit('/supportedHandset.do', frmId, setSupportedHandsetResult)
    ajax.byId('vendorId').disabled = true;
    ajax.byId('handsetModel').innerHTML = setLoadingMsg(localeId, styleId, 'loading');
    return false;
}

var setSupportedHandsetResult = {
    success: function(o) {
        var data = o.responseText;
        ajax.byId('handsetModel').innerHTML = data;
        ajax.byId('vendorId').disabled = false;
    },
    failure: function(o) {
        ajax.byId('handsetModel').innerHTML = errorMsg;
    }
};

function showHandsetVendorsCombo(form) {
	if (!changeHandsetOperator())
		return;
    ajaxFormSubmit('/handsetVendors.do', form, showHandsetVendorsComboResult);
    if (ajax.byId("operatorId"))
        ajax.byId("operatorId").disabled = true;

    if (ajax.byId("useragentId") && ajax.byId("useragentId").length > 0) {
        ajax.byId("useragentId").selectedIndex = 0;
        ajax.byId("useragentId").disabled = true;
    }
    ajax.byId("handsetVendors").innerHTML = '<img src="/style/en_US/1/images/loading.gif" width="58" height="16">';
    return false;
}

var showHandsetVendorsComboResult = {
    success: function(o) {
        var data = o.responseText;
        ajax.byId('handsetVendors').innerHTML = data;
        ajax.byId("operatorId").disabled = false;
    },
    failure: function(o) {
        ajax.byId('handsetVendors').innerHTML = errorMsg;
    }
};
var _contentTypeId=-1; 
function showHandsetOperatorsCombo(contentTypeId) {
    _contentTypeId = contentTypeId;
    ajaxFormSubmit('/handsetOperators.do', '', showHandsetOperatorsComboResult, 'contentTypeId='+_contentTypeId);
}

var showHandsetOperatorsComboResult = {
    success: function(o) {
        var data = o.responseText;
        ajax.byId('handsetOperators').innerHTML = data;
    },
    failure: function(o) {
        ajax.byId('handsetOperators').innerHTML = errorMsg;
    }
};

var chooseModelText, autoDiscover = "Auto Discover";
function changeHandsetOperator(){
    if (mmsOperator){
        var obj;
        if (ajax.byId('frmRegister_useragentId'))
            obj = ajax.byId('frmRegister_useragentId');
        else if (ajax.byId('useragentId'))
            obj = ajax.byId('useragentId');
                
        for (var i = 0 ; i < mmsOperator.length  ; i++)
            if (ajax.byId('operatorId') && ajax.byId('operatorId').value == mmsOperator[i]){
                if (ajax.byId('vendorId')){
                    ajax.byId('vendorId').disabled = true;
                    ajax.byId('vendorId')[0].text = autoDiscover;
                    ajax.byId('vendorId')[0].selected = true;
                }
                if (obj){
                    obj.disabled = true;
                    if (!chooseModelText)
                        chooseModelText = obj[0].text;
                    obj[0].text = autoDiscover;
                    obj[0].selected = true;
                }
                return false;
            }
        if (ajax.byId('vendorId')) ajax.byId('vendorId').disabled = false;
        if (obj){
            if (chooseModelText)
                obj[0].text = chooseModelText;
            obj[0].selected = true;
            obj.disabled = true;
        }
    }
    return true;
}

function updateTop() {
    ajaxFormSubmit('/selectedHandset.do', '', updateTopResult);
}

var updateTopResult = {
    success: function(o) {
        var data = o.responseText;
        ajax.byId('topitemsub').innerHTML = data;
    },
    failure: function(o) {
        ajax.byId('topitemsub').innerHTML = errorMsg;
    }
};

function updateRegister() {
    ajaxFormSubmit('/promoteCampaign.do', '', updateRegisterResult);
}

var updateRegisterResult = {
    success: function(o) {
        var data = o.responseText;
        ajax.byId('register').innerHTML = data;
    },
    failure: function(o) {
        ajax.byId('register').innerHTML = errorMsg;
    }
};

function submitPornoGraphic() {
    ajaxFormSubmit('/pornoGraphic.do', '', pornoGraphicResult, 'over18=true');
}

var pornoGraphicResult = {
    success:  function(o) {
        ajax.byId('pornoGraphic').style.display = 'none';
        ajax.byId(innerDivId).style.display = 'block';
    },
    failure: function(o) {
        ajax.byId('pornoGraphic').innerHTML = errorMsg;
    }
};

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();
            //            alert(document.forms["ajaxWelcomeInput"]);
            document.forms["ajaxWelcomeInput"].submit();
        }
    },
    failure: function(o) {
        //        var data = o.responseText;
        //        alert(data);
        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){}
};

