var widget = {
	getUserDetails : function ()
	{	
		var isValid = false;
		var url = '/widget/UserDetails';
		var val = "";
		var idx2;
		var nodes = $('idx').value.split(',');
		var userId = 0;
		if($('phone'))
		{
			if($('phone').value.length > 9 && widget.validatePhone($('phone').value)){
				type = "phone";
				val = $('phone').value;
				isValid = true;
			}
		}
		if($('email')){
			if(! isValid && widget.validateEmail($('email').value)){
				type = "email";
				val = $('email').value;
				isValid = true;
			}
		}
		if($('landline') ){
			if($('landline').value.length > 9 && widget.validatePhone($('landline').value) ){
				type = "landline";
				val = $('landline').value;
				isValid = true;				
			}
			
		}		
				
		sList = $('idx').value;
		if(isValid) 
		{
			
			var id = 0;
			new Ajax.Request(url, {
				method: 'post',
				parameters: { 'oaddress' : val, 'type': type},	
				onLoading: "",
				onSuccess: function(transport) {
					response = eval("(" + transport.responseText + ")");
					user = response.user;
					if(user['id'] && user['id'] != "")
						id = user['id'];
						
					if($('fname') && $('fname').value == "")
						$('fname').value = user['fname'];
					
					if($('lname') && $('lname').value == "")
						$('lname').value = user['lname'];
					
					if($('email')){
						if($('email') && user['email'].length > 2)
							$('email').value = user['email'];	
					}
					if($('phone'))
						$('phone').value = user['phone'];
				
				},
				onComplete: function() {
					if(id != 0 && sList.length > 1) {
						widget.getUserSubscriptions(id,sList);
					}
				}
			});
		}
	},
	checkIdx2 : function()
	{
		if($('idx2'))
		{
			Effect.Appear('subscriptionsLabel');
		}			
		
	},
	getUserSubscriptions : function(id,list)
	{
		if(id != '' && id > 0) {
			url = "/widget/UserSubscriptions"
			new Ajax.Updater("subscriptions",url, { 
				method: 'post',
				parameters: { 'userId' : id,
							  'sList' : list}
			});	
		}
		setTimeout("widget.checkIdx2()",1000);
	},
	inArray : function(obj,value)
	{
		for(i=0; i<obj.length; i++)
		{
			
			if(value == obj[i])				
			return true;
		}
		
	},		
	doSubscription : function(action)
	{
		var idx = $('idx').value;
		var idx2 = "";
		var list = "";
		if($('idx2'))
			idx2 = $('idx2').value;
			
		var list = "";
		if(action == 1)
		{
			nlist = idx.split(',');
			for(i = 0; i < nlist.length ; i++)
			{
				str = 'node_'+nlist[i];
				if($(str) && $(str).checked)
					list += ","+$(str).value;		
			}			
		}
		if(action == 0)
		{
			tmp = idx2.split(':');
			nlist = tmp[1].split(',');
			for(i=0; i< nlist.length; i++)
			{
				str = 'sub_'+nlist[i];
				if($(str) && $(str).checked )
					list += ","+$(str).value;		
			}
		}		

		list = list.substring(1,list.length);	
		var url = '/widget/Subscribe';
		var phone = 0;
		var email = 0;
		var fname = $('fname') ? $('fname').value : null;
		var phone = $('phone') ? $('phone').value : null;
		var lname = $('lname') ? $('lname').value : null;
		var customField = $('customField') ? $('customField').value : null;
		var privateCode = $('privateCode') ? $('privateCode').value : null;
		var keyword = $('keyword') ? $('keyword').value : null;
		var message = "";
		var messagePrefix = "";
		var messageBody = "";
		var messageSuffix = "";
		var fullMessage =  "";
		var email = $('email') ? $('email').value : null
		
		
		if($('landline'))
			var landline = $('landline').value;
		else
			var landline = "";
			
		if($('phone') && $('phone').value == "")
		{		
			if($('email') && $('email').value == "") {							
				if($('landline') && $('landline').value == "") {
					alert("Please enter a valid mobile number, email, or landline number.");
					return;
				}
			} else {
				if($('email') && $('email').value.length <= 3 && !widget.validateEmail($('email').value)) {
					alert("Please enter a valid email.");
					return;
				}
			}				
		} else if ($('phone') && $('phone').value != "") {
			if($('phone').value.length <= 10 && !widget.validatePhone($('phone').value)) {
				alert("Please enter a valid mobile number");
				return;
			} 				
		} else if($('email') && $('email').value == "") {			
			if($('email') && $('email').value == "") {							
				if($('landline') && $('landline').value == "") {
					alert("Please enter a valid email or landline.");
					return;
				}
			} 
		} else if ($('email') && $('email').value != "") {
			if($('email').value.length <= 3 && !widget.validateEmail($('email').value)) {
				alert("Please enter a valid email.");
				return;
			}			
		} else if ($('landline') && $('landline').value == "") {
			if($('landline') && $('landline').value == "") {
				alert("Please enter a valid landline.");
				return;			
			}
		} else {
			alert("Please Enter Valid Contact Information");
			return;
		}
		phone = $('phone') ? $('phone').value : "";
		email = $('email') ? $('email').value : "";;		
		landline = $('landline') ? $('landline').value : "";;
		
		new Ajax.Request(url, {
			method: 'post',
			parameters: { 'phone' : phone, 
						  'email': email, 
						  'landline': landline,
						  'fname': fname, 
						  'lname': lname, 
						  'nodes': list, 
						  'action': action, 
						  'customField': customField, 
						  'privateCode' : privateCode, 
						  'keyword' : keyword},	
			onSuccess: function(transport) {
				response = eval("(" + transport.responseText + ")");
				result = response.result;
				group = response.group;
				code = response.code;
				stopText = response.stopText;
				helpText = response.helpText;
				
				if(action == 1 && group) {
					for(i=0; i< group.length; i++)
					{

						if($('phone') && $('phone').value != "") {
							if(group[i]['message']){
								 messagePrefix = "Message from "+group[i]['name'];
								 messageBody = group[i]['message']+"\n";
								 messageSuffix = "Would you like this message to be sent to you?";
								 fullMessage =  messageBody + "\n" + messageSuffix;
							}
							if(messageBody != 'Subscribed to group.' && fullMessage && fullMessage.length > 1 )
							{
								if(confirm(fullMessage) )
								{
									widget.sendMessage(group[i]['message']+" "+stopText+" "+helpText,group[i]['id'],code);
								}
							}
							else{
								alert("Subscribed to " + group[i]['name']);	
							}	
						} else {
							alert("Subscribed to " + group[i]['name']);	
						}
					}
					Effect.Appear('subscriptionsLabel');
				}
				widget.getUserDetails();				
			}
		});	
	},
	sendMessage : function(message,group,code)
	{
		var phone = $('phone').value;
		var url = '/widget/Sendmessage';
		new Ajax.Request(url, 
		{
			method: 'post',
			parameters: { 'message' : message, 'group': group, 'phone': phone, 'code':code},	
			onLoading: "",
			onSuccess: function(transport) {
			response = eval("(" + transport.responseText + ")");
			
			}
		});

		
	},
	validateEmail : function(str)
	{
		if(str.match(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i) ) 
			return true;
		else
			return false;
	},
	validatePhone : function(str)
	{
		if(str.replace(/[^0-9]/g, '').length == 10)
			return true;
		else
			return false;
	},
	getAddressType : function()
	{
		var type = "";
		var phone = $('phone').value;
		var email = $('email').value;
		if(widget.validateEmail(email) )
			type = 'email';
		else
		{	
		var oaddress = emailPhone.replace(/[^0-9]/g,''); 
		if(oaddress.length == 10)
			type = 'phone';
		}	
		
		return type;
	},
	toggleView : function()
	{
		if($('sAnchor').innerHTML == 'Unsubscribe')
		{
			Effect.Fade('subscribe');
			if($('idx2'))
			{
			vars = 	$('idx2').value.split(':');		
			widget.getUserDetails(vars[0],$('idx').value);
			}
			Effect.Appear('subscriptions');
			$('sAnchor').innerHTML = 'Subscribe';	
		}else
		{
			Effect.Fade('subscriptions');
			Effect.Appear('subscribe');
			$('sAnchor').innerHTML = 'Unsubscribe'	
		}
		
	}

}
