Mobile = new function(){
this.validatePhone = function(input,phoneVal){
/* Validates phone number */
var reg = /^[2-9]\d{2}\d{3}\d{4}$/; 
if(phoneVal == null || phoneVal.length < 1){
$j(input).parent().addClass('errorText'); 
return false;
}else if(!reg.test(phoneVal)) 
{
$j(input).parent().addClass('errorText');	
return false;
}else{
$j(input).parent().removeClass('errorText'); 
input.value='';
return true;
}
return false;
},
this.filterPhone = function(phone){
/*
* Returns a string consisting of only numbers
*/
var valid = "1234567890";
var i;
var returnString = "";
for (i = 0; i < phone.length; i++){
var c = phone.charAt(i);
if (valid.indexOf(c) != -1) returnString += c;
}
return returnString;
}
};
Email = new function(){
this.validateEmailAddress = function(input, emailAddVal){
var reg = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
if(emailAddVal == null || emailAddVal.length < 1){
$j(input).parent().addClass('errorText'); 
return false;
}else if(!reg.test(emailAddVal)) 
{
$j(input).parent().addClass('errorText'); 
return false;
}else{
$j(input).parent().removeClass('errorText'); 
input.value='';
return true;
}
return false;
}
};
Mobile.Widgets = new function(){
this.navPage = function(page, obj, params){
/* Opens specified page in current tab */
var widget;
if(obj.className && obj.className.indexOf('mobileWidget') != -1){
widget = obj;
} else{
widget = MTVN.UI.Paginate.Utils.findParent(obj, 'mobileWidget');
}
var pages = $j(widget).find('.mWidget-page');
var pageNo;
if(page=='last'){
pageNo = pages.length;
}else{
pageNo = page;
}
pages.addClass('hide');
pages.filter('.page' + pageNo).removeClass('hide');
},
this.loadContent = function(page, widget, data){
/* Replaces the specified page's content with the given data */
$j(widget).find('.mWidget-pages .page' + page).html(data);
},
this.getItNow = function(obj,page,msg){
/* Goes to carrier page, and sets msg value */
var widget = MTVN.UI.Paginate.Utils.findParent(obj, 'mobileWidget');
var widgetID = widget.id;
var newMsg;
Mobile.Widgets.navPage(page,widget);
if(msg=="paginated"){
newMsg = Mobile.Widgets.getPaginatedSMS(widget);
}else{
newMsg = msg;
}
$j(widget).find('#' + widgetID + '_form ' + '#' + widgetID + '_sms_msg').val(newMsg);
},
this.getPaginatedSMS = function(widget){
/* Gets msg from currently visible item */
var msg = $j(widget).find('.page1 .lst:not(.hide) .lst-sms-msg').text();
return msg;
},
this.sendSMS = function(obj,paginated,widgetID){
/* Validates and sends SMS message */
var widget = MTVN.UI.Paginate.Utils.findParent(obj, 'mobileWidget');
var input = $j(widget).find('form .cell-input input');
var fullPhoneNumber = Mobile.filterPhone(input.val());	
var validResult = Mobile.validatePhone(input,fullPhoneNumber);
var loader = $j(widget).find('.ajax-loader');
if(validResult == false) 
{
return false;
}
loader.removeClass('hide');
var msg;
if(paginated){
msg = Mobile.Widgets.getPaginatedSMS(widget);
}else{
msg = $j(widget).find("#" + widget.id + "_sms_msg").val();
}
$j(widget).find('#email-thks').addClass('hide');
$j(widget).find('#sms-thks').removeClass('hide');
$j(widget).find('#email-err').addClass('hide');
$j(widget).find('#sms-err').removeClass('hide');
var pages = $j(widget).find('.mWidget-page');
if (widgetID == "mobileAlerts")
{
$j.post("/global/mobile/widgets/sms_ajax.jhtml",
{phone: fullPhoneNumber, provider:msg, typeSms:widgetID},
function(data){
if(data.indexOf('success')!= -1){
Mobile.Widgets.navPage(pages.length-1, widget);
}
else{
Mobile.Widgets.navPage(pages.length, widget);
}
loader.addClass('hide');
});
}
else
{
$j.post("/global/mobile/widgets/sms_ajax.jhtml",
{phone: fullPhoneNumber, msg:msg, typeSms:widgetID},
function(data){
if(data.indexOf('success')!= -1){
Mobile.Widgets.navPage(pages.length-1, widget);
}
else{
Mobile.Widgets.navPage(pages.length, widget);
}
loader.addClass('hide');
});
}
return false; 
},
this.sendEmail = function(obj,paginated,widgetID){
var widget = MTVN.UI.Paginate.Utils.findParent(obj, 'mobileWidget');
var input = $j(widget).find('form .email-input input');
var emailTo = input.val();	
var validResult = Email.validateEmailAddress(input, emailTo);
if(validResult == false){
return false;
}
var appName = $j(widget).find("#" + widget.id + "_app_title").val();
var platforms = document.getElementById('platforms');
var platform = platforms.options[platforms.selectedIndex].text;
var msg;
if(paginated){
msg = Mobile.Widgets.getPaginatedSMS(widget);
}else{
msg = $j(widget).find("#" + widget.id + "_sms_msg").val();

}
$j(widget).find('#sms-thks').addClass('hide');
$j(widget).find('#email-thks').removeClass('hide');
$j(widget).find('#sms-err').addClass('hide');
$j(widget).find('#email-err').removeClass('hide');
var pages = $j(widget).find('.mWidget-page');
$j.post("/global/mobile/widgets/send_email.jhtml",
{email_to: emailTo, app_name: appName, platform: platform, msg: msg},
function(data){
if(data.indexOf('success')!= -1){
Mobile.Widgets.navPage(pages.length-1, widget);
}
else{
Mobile.Widgets.navPage(pages.length, widget);
}
});
return false;
},
this.loadAjaxTab = function(obj,href,params){
/* Opens a new tab, and loads content using ajax */
var newActiveTabId = obj.parentNode.id;
var tab = document.getElementById(newActiveTabId);
/* use commented code if loading image should display before */
var content = $j(tab).parent().next();
$j(tab).siblings().removeClass('active');
$j(tab).addClass('active');
content.addClass('hide');
$j.ajax({url:href,data:params,dataType:'html', processData: false, success:function(data){
content.replaceWith(data);
//loader.addClass('hide');
}});
},
this.openTab = function(id){
/* Triggers click event for a tab */
var tab = document.getElementById(id);
$j(tab).find('a').click();
},
this.loadAjaxPage = function(obj,page,href,params,isNavPage){
/* Loads an ajax page in the current tab */
var widget;
if(obj.className.indexOf('mobileWidget') != -1){
widget = obj;
} else{
widget = MTVN.UI.Paginate.Utils.findParent(obj, 'mobileWidget');
}
var loader = $j(widget).find('.ajax-loader');
var newParams ="";
if($j(widget).hasClass('mobileWidget-wide')){
newParams = params + "&v=wide";
// if loading image should display before
}else{
newParams = params;
}
loader.removeClass('hide'); 
$j.post(href,newParams,function(data){
if (isNavPage)
{	
Mobile.Widgets.navPage(page,widget);
}
Mobile.Widgets.loadContent(page,widget,data);
loader.addClass('hide');
},'html');
},
this.loadAjaxItem = function(obj, widgetID, pageNo, href, href2, params, pos, tabID){
/* Loads new ajax tab, and then loads ajax page */
var widget = MTVN.UI.Paginate.Utils.findParent(obj, 'mobileWidget');
var loader = $j(widget).prev();
var newParams = params + '&mobileWidgetPage='+pageNo;
if(widget.id!=widgetID){
loader.removeClass('hide');
$j(widget).addClass('hide');
$j.ajax({url:href,data:newParams,dataType:'html',success:function(data){
$j(widget).replaceWith(data);
var newWidget = $j(loader).next().get(0);
Mobile.Widgets.loadAjaxPage(newWidget,pageNo,href2,'pos='+pos);
var tab = document.getElementById(tabID);
$j(tab).siblings().removeClass('active');
$j(tab).addClass('active');
}});
}
},
this.loadPaginatedItem = function(obj, widgetID, pageNo, href, params, pos, tabID){
/* Loads new ajax tab, goes to the specified page, and shows paginated item at position pos */
var widget = MTVN.UI.Paginate.Utils.findParent(obj, 'mobileWidget');
var loader = $j(widget).prev();
var newParams = params + '&mobileWidgetPage='+pageNo;
if(widget.id!=widgetID){
loader.removeClass('hide');
$j(widget).addClass('hide');
$j.ajax({url:href,data:newParams,dataType:'html',success:function(data){
$j(widget).replaceWith(data);
loader.addClass('hide');
var newWidget = $j(loader).next().get(0);
var pages = $j(newWidget).find('.mWidget-page');
pages.filter('.page' + pageNo).removeClass('hide');
var mdl = $j(newWidget).find('.pagination').parent().parent().get(0);
MTVN.UI.Paginate.get(mdl,pos);
var tab = document.getElementById(tabID);
$j(tab).siblings().removeClass('active');
$j(tab).addClass('active');
}});
}
},
this.changeMsg = function(msg, msgfield){
document.getElementById(msgfield).value = msg;
},
this.changeSendingOptions = function(obj, msgfield){
Mobile.Widgets.changeMsg(obj.value, msgfield);
var widget;
if(obj.className.indexOf('mobileWidget') != -1){
widget = obj;
} else{
widget = MTVN.UI.Paginate.Utils.findParent(obj, 'mobileWidget');
}
var option = obj.options[obj.selectedIndex].text;
var destSelect = $j(widget).find('.select-dest');
var phoneInput = $j(widget).find('.phone-submit');
var emailInput = $j(widget).find('.email-submit');
if(option == 'iPad'){
destSelect.addClass('hide');
phoneInput.addClass('hide');
emailInput.removeClass('hide');
}else{
destSelect.removeClass('hide');
phoneInput.removeClass('hide');
emailInput.addClass('hide');
}
},
this.changeDestinationType = function(obj){
var widget;
if(obj.className.indexOf('mobileWidget') != -1){
widget = obj;
} else{
widget = MTVN.UI.Paginate.Utils.findParent(obj, 'mobileWidget');
}
var option = obj.options[obj.selectedIndex].value;
var phoneInput = $j(widget).find('.phone-submit');
var emailInput = $j(widget).find('.email-submit');
if(option == 'sms'){
phoneInput.removeClass('hide');
emailInput.addClass('hide');
}
if(option == 'email'){
phoneInput.addClass('hide');
emailInput.removeClass('hide');
}
}
}
