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);
    }
    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').style.background = "url('../images/getmore.jpg') no-repeat";
        document.getElementById('register').innerHTML = data;
    },
    failure: function(o) {
        document.getElementById('register').style.background = "url('../images/getmore.jpg') no-repeat";
        document.getElementById('register').innerHTML = errorMsg;
    }
};

var tcampaignId;
var ajaxCount = 180;
function updatePassword(campaignId) {
    tcampaignId = campaignId;
    ajaxCount -- ;
    ajaxFormSubmit('/password.do', '', updatePasswordResult, 'campaign=' + tcampaignId);
}

var updatePasswordResult = {
    success: function(o) {
        var data = o.responseText;
        if (data.toString().indexOf("<div id=\"campaignStatus\" style=\"display:none;\">-1</div>") >= 0) {
            if (ajaxCount >= 0)
                setTimeout('updatePassword(' + tcampaignId + ')', 20000);
        }
        else {
            disPopup();
            window.location.reload();
        }
    },
    failure: function(o) {
        ajax.byId('inputzone').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';
    },
    failure: function(o) {
        handleErr('pornoGraphic', o.responseText);
    }
};

function emailSubmit( url, from_id ){
	ajaxFormSubmit(url, from_id, emailResult)
}

var emailResult = {
    success:  function(o) {
	    var data = o.responseText;
        ajax.byId('email').innerHTML = data;

        if ( ajax.byId('redirectURL') ){
        	window.open(ajax.byId('redirectURL').value);
        }           
    },
    failure: function(o) {
		handleErr('email', o.responseText);
	}
};