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';
    },
    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 = "Cleaning!";
	ajaxFormSubmit(url, '', clearCacheResult, '');
}

var clearCacheResult = {
	success:function(o){
		document.getElementById(resultTdId).innerHTML = "Finished!";
	},
	failure:function(o){}
};

function insertGenderPixel() {
	document.getElementById('gender').style.display = 'none';
	document.getElementById('name').style.display = 'block';;
}
function insertSignPixel() {
	document.getElementById('select_sign').style.display = 'none';
	document.getElementById('inputzone').style.display = 'block';
    document.getElementById('loadingImg').style.display = 'block';
    ajaxFormSubmit('/textLandingPixel!sign.do', '', updateToMainPageResult, 'sign=');
}

function insertName() {
	var name = "";
	if (document.getElementsByTagName('user.name').value)
		name = document.getElementsByTagName('user.name').value;
	document.getElementById('name').style.display = 'none';
    document.getElementById('loadingImg').style.display = 'block';
    ajaxFormSubmit('/textLandingPixel!gender.do', '', updateToSignPageResult, 'name='+name);
}


var updateToSignPageResult = {
    success: function(o) {
        document.getElementById('loadingImg').style.display = 'none';
		document.getElementById('gender').style.display = 'none';
		document.getElementById('main').style.display = 'none';
		document.getElementById('inputzone').style.display = 'none';
		document.getElementById('select_sign').style.display = 'block';

    },
    failure: function(o) {
   		document.getElementById('loadingImg').style.display = 'none';
   		document.getElementById('select_gender_btn').style.display = 'block';
    }
};

var updateToMainPageResult = {

    success: function(o) {
        var data = o.responseText;
   		document.getElementById('loadingImg').style.display = 'none';    
		document.getElementById('gender').style.display = 'none';
		document.getElementById('select_sign').style.display = 'none';
  		document.getElementById('inputzone').style.display = 'block';
		document.getElementById('main').style.display = 'block';
		
    },
    failure: function(o) {
    	document.getElementById('loadingImg').style.display = 'none';
		document.getElementById('inputzone').style.display = 'none';
   		document.getElementById('select_sign').style.display = 'block';
   	}
};