













/* /managedfe/js/TWC/util/social-loader.js expireTime 1787 */

/**
 * This class provides a global way to load all the social code
 * on pages if and only if it has NOT already been loaded.
 * It also sets up a listener for action tracking on any
 * facebook comment.
 * 
 * @author ssherwood
 */
TWC.Events.pcoReady.done(function(){
	// Load social API's if needed
	if((TWC.pco.get("page.pageId") !== "62287" || (TWC.pco.get("page.pageId") === "62287" && (jQuery("#wx-breaking-now").length > 0 || jQuery(".wx-freeformtitle-share").length > 0 || jQuery("#wx-social-share-homepage").length > 0))))  {
		
		// Twitter checks for itself before re-executing the same code
		jQuery.getScript("http://platform.twitter.com/widgets.js", function() {				
		});
		
		// Google checks for itself before re-executing the same code
		jQuery.getScript("https://apis.google.com/js/plusone.js", function() {				
		});
		
		// Facebook overwrites existing code, so check for it before loading it
		if(!window.FB) {
			jQuery.getScript("http://connect.facebook.net/en_US/all.js", function() {
				FB.init({appId: 144457238950063, status: true, cookie: true, xfbml: true});				
				if(typeof(TWC.Tools) != "undefined") {				
					TWC.Tools.getEvent('fb_initiated').resolve();
				}
				FB.Event.subscribe("comment.create",function(response){
					var pageType = (TWC.pco.get("metrics") && TWC.pco.get("metrics").level2) ? TWC.pco.get("metrics").level2 : "";
					if(TWC.pco.get("metrics").level2.toLowerCase() != "weather"){
							pageType = "ARTICLE";
					}
					var str=document.location.href;
					var article = str.substring(str.lastIndexOf("/")+1);
					if(article.indexOf("?")>0){
						article = article.substring(0,article.indexOf("?"));
					}
					sc_trackSocialLinks(this,'eVar21,eVar22,eVar24,campaign,events','event52','event52','Facebook',article,pageType,null,'Facebook Comment',null);
				});
				
				// Parse Facebook for the entire page
				FB.XFBML.parse();
			});
		}
	}
	
});	







/* /managedfe/js/TWC/util/social-share.js expireTime 1787 */

'TWC' in window || (window.TWC = {});

(function ($) {
	$(document).ready(function() {		 		
		var breakingNowDiv = $.find(".twc-breaking-now-social .wx-social-share-wrapper");
		if(breakingNowDiv != null) {
			var brDiv = ".twc-breaking-now-social .wx-social-share-wrapper";
			var fbCampignStr = "?cm_ven=Facebook&cm_cat=fb_breaknow_rec"
			var tweetCampignStr = "?cm_ven=Twitter&cm_cat=tw_breaknow_tweet";
			shareFunction(brDiv, fbCampignStr, tweetCampignStr);
		}
		
		var alertDiv = $.find(".wx-alert-wrapper .wx-social-share-wrapper");
		if(alertDiv != null) {
			var alDiv = ".wx-alert-wrapper .wx-social-share-wrapper";
			var fbCampignStr = "?cm_ven=Facebook&cm_cat=fb_alerts_rec"
			var tweetCampignStr = "?cm_ven=Twitter&cm_cat=tw_alerts_tweet";
			shareFunction(alDiv, fbCampignStr, tweetCampignStr);			
		}
	});	

	function shareFunction(divClass, fbCampignStr, tweetCampignStr) {	
		$(''+divClass+'').each( function(index, Element) {			
			var $ccMod = $(this);
			var alertmsg = $ccMod.attr("alertmsg");			
			var alerturl = $ccMod.attr("alerturl");
			var alertdesc = $ccMod.attr("alertdesc");
			var twittertext = $ccMod.attr("twittertext");
			var sharetype = $ccMod.attr("sharetype");
			var $sharebar = $ccMod.find(".wx-social-share-bar");
			var $sharelist = $ccMod.find(".wx-social-share-list");
			var $sharefb = $ccMod.find(".wx-breaking-social-facebook");
			var $sharetwitt = $ccMod.find(".wx-breaking-social-twitter");
			sharetype = sharetype.replace('-','_');				
			var pageType = (TWC.pco.get("metrics") && TWC.pco.get("metrics").level2) ? TWC.pco.get("metrics").level2 : "";
			var hide = false;
			// Show menu on  focus
			var hide_shareList = function() {
				if(hide) {
					if (!$sharelist.hasClass("wx-hide")) {
						$sharelist.addClass("wx-hide");
					}
					$sharelist.removeClass("wx-open");
					
					//for homepage version with toggling arrow
					if ($sharebar.parent().hasClass("wx-social-share-homepage")){ 
						$(".wx-social-share-homepage .icon-arrow_down").removeClass("wx-hide");
						$(".wx-social-share-homepage .icon-arrow_up").addClass("wx-hide");
					}
					
				}				
			};
			
			$sharebar.hover(
			  function () {
				hide = false;
				if (!$sharelist.hasClass("wx-open")) {
					$sharelist.addClass("wx-open");		
				}

				if ($sharebar.parent().hasClass("wx-social-share-homepage")){ //for homepage version
					$(".wx-social-share-homepage .icon-arrow_down").addClass("wx-hide");
					$(".wx-social-share-homepage .icon-arrow_up").removeClass("wx-hide");
				}
				
				$sharelist.removeClass("wx-hide");
			  },
			  function () {
				hide = true;
				hide = setTimeout(function() {
					  hide_shareList();
				  }, 1000);	
			  }
			);		
		
			$sharelist.hover(
			  function () {
				hide = false;
				if (!$sharelist.hasClass("wx-open")) {
					$sharelist.addClass("wx-open");
				}
				$sharelist.removeClass("wx-hide");
			  },
			  function () {
				hide = true;
				hide = setTimeout(function() {
					  hide_shareList();
				  }, 1000);	
			  }
			);	
			
			var str=document.location.href;
			var article = str.substring(str.lastIndexOf("/")+1);
			if(article.indexOf("?")>0){
				article = article.substring(0,article.indexOf("?"));
			} 					
			$sharefb.click(function () {				
				var fbshare = {
				  method: 'feed',
				  link: alerturl+fbCampignStr+'&fb_ref='+sharetype,
				  picture: $(".refresh-dl-image").attr("src"),
				  name: alertmsg,
				  caption: alerturl,
				  description: alertdesc
				};
			
				FB.ui(fbshare, fbcallback);	
				if(sharetype =="br_share"){
					sc_trackSocialLinks(this,'eVar21,eVar22,eVar24,campaign,events','event53,event57','event53,event57','Facebook',[pageType,'_breaknow'].join(''),'breaknow',null,'Facebook Recommend',null);
				} else {
					sc_trackSocialLinks(this,'eVar21,eVar22,eVar24,campaign,events','event53,event57','event53,event57','Facebook',article,pageType,null,'Facebook Recommend',null);
				}
				
			});
			
			var fbcallback = function(response){
			};

			$sharetwitt.click(function () {	
				var twtShareUrl = alerturl+tweetCampignStr;
				var username="twci"; // bit.ly username
				var api_key="R_203d2ed3b9b44577b08a155a02081531"; //bit.ly API key	
				/*
				 * WWW-9772: BITLY URL not working properly.
				 * The previous method followed is asynchronous and WRONG. It does not wait for bitly output before calling twitter
				 * API. Hence, it is re-written to jQuery.ajax with timeout and other handlers. If successful bitly call, we will
				 * use the shortened URL else the regular one. The twitter, however, shortens to t.co URL.
				 * Change Owner: Kulanthaivelu Sankaran
				 */
				$.ajax({
				  url: 'http://api.bitly.com/v3/shorten?callback=?',
				  dataType: 'jsonp',
				  data: { 
						"format": "json",
						"apiKey": api_key,
						"login": username,
						"longUrl": twtShareUrl
				  },
				  timeout: 3000,
		  				success: function(response) {
		  					if(response && response.data && response.data.url) {
		  						var tweetwindow;
		  						tweetwindow=window.open('https://twitter.com/share?url='+response.data.url+'&text='+encodeURIComponent(twittertext)+'&via=weatherchannel','TwitterTweet','height=350,width=600');
		  					}
		  					else {
		  						tweetwindow=window.open('https://twitter.com/share?url='+twtShareUrl+'&text='+encodeURIComponent(twittertext)+'&via=weatherchannel','TwitterTweet','height=350,width=600');
		  					}
		  					if (window.focus && tweetwindow) {tweetwindow.focus();}
						},
						error: function (jqXHR, textStatus, errorThrown) {
							tweetwindow=window.open('https://twitter.com/share?url='+twtShareUrl+'&text='+encodeURIComponent(twittertext)+'&via=weatherchannel','TwitterTweet','height=350,width=600');		
							if (window.focus) {tweetwindow.focus();}
						}
				});
				
//				$.getJSON("http://api.bitly.com/v3/shorten?callback=?", { 
//						"format": "json",
//						"apiKey": api_key,
//						"login": username,
//						"longUrl": twtShareUrl
//					},
//					function(response) {
//						twtShareUrl = response.data.url;				
//					}
//				);
			
				if(sharetype =="br_share"){
					sc_trackSocialLinks(this,'eVar21,eVar22,eVar24,campaign,events','event55,event57','event55,event57','Twitter',[pageType,'_breaknow'].join(''),'breaknow',null,'Twitter Tweet',null);
				} else {
					sc_trackSocialLinks(this,'eVar21,eVar22,eVar24,campaign,events','event55,event57','event55,event57','Twitter',article,pageType,null,'Twitter Tweet',null);
				}						
			});				
		 });
	}
})(jQuery);







/* /managedfe/js/TWC/util/facebook-breakingnow.js expireTime 1787 */

'TWC' in window || (window.TWC = {});

(function (jQuery) {
	
	var searchCriteria ="";
	var searchtext = "";
	var accessToken = "";
	var bralertmsg = "";
	var bralertURL = "";
	var bralertDesc = "";
	var radius = "";
	var fbCustomActionUrl = "";
	var fbCustomActionType = "";
	var _suser = [];	       // Possibly Affected Friends Array.
	var _friends = [];	   // Total Friends Array.
	var _clFriends = [];   // Possibly Affected Close Friends Array.
	var _family = [];	   // Possibly Affected Family Array.
	var _location = [];     
	var affLength = "";
	var _guser= [];
	var response = "";		
	var popUpopen = 'false';
	var fb_loggedinEventFired = 'false';
    
	jQuery(document).ready(function() {	
		var alertObj = jQuery('#wx-breaking-now-inner .twc-breaking-now-social.wx-social-friends');
		bralertmsg = alertObj.attr("bralertmsg");
		bralertURL = alertObj.attr("bralertURL");
		bralertDesc = alertObj.attr("bralertDesc"); 
		searchCriteria = alertObj.attr("searchtype");
		searchtext = alertObj.attr("searchvalue"); 
		radius = alertObj.attr("radius");	
		fbCustomActionUrl = alertObj.attr("fbCustomActionUrl"); 			
		fbCustomActionType = alertObj.attr("fbCustomActionType");
		var popDiv = '<div class="wx-popup-box" style="display:none;"><span class="wx-icon wx-social wx-w-sm-up"></span><div class="wx-popup-box-content"><div class="wx-popup-thumb"><img alt="" src=""  from=""/></div><div class="wx-popup-share-txt"><textarea id="feedform_user_message" name="feedform_user_message" title="" class=""></textarea></div><div class="wx-popup-story-cntr"><div class="wx-popup-story-thumb"><img alt="" src="http://s.imwx.com//img/layout/TWC_logo_84x84.gif" class="img"></div><div class="wx-popup-story-info"><div class="wx-popup-story-title">'+bralertmsg+'</div><div class="wx-popup-story-caption">'+bralertURL+'</div><div class="wx-popup-story-details">'+bralertDesc+'</div></div></div></div><div class="wx-popup-btn"><ul class="wx-popup-btn-list"><li><input type="hidden" id="timeShareType" name="" value=""><input type="submit" class="wx-popup-btn-post" fbid="" id="" onclick="" name="" value="Post to Timeline"></li><li><input type="submit" class="wx-popup-btn-close" id="" onclick="" name="" value="Close"></li></ul></div></div>';			
		if (jQuery(".wx-popup-box")[0]) {
		} else {
			jQuery("#wx-wrapper").append(popDiv);
		}
		
		//Adding a class to the wx-wrapper in case of non-severe mode
        var breakingNowActive = jQuery('#wx-breaking-now').length != 0;
        var breakingNowMiniMode = jQuery('#wx-breaking-now').hasClass('bn-mini');
        var breakingNowResponsive = jQuery('#viewport').length !=0;
        var breakingNowNonSevere = jQuery('#wx-breaking-now').hasClass('wx-non-severe');

		if(breakingNowActive) {
            if (!breakingNowResponsive) {
                if (breakingNowMiniMode) {
                    jQuery('body').css('background-position','0 30px');
                    jQuery('#wx-wrapper').css('border-top-width','30px');
                } else {
                    jQuery('body').css('background-position','0 51px');
                    jQuery('#wx-wrapper').css('border-top-width','51px');
                }
            }
			if(breakingNowNonSevere){
				jQuery('#wx-wrapper').addClass('wx-bn-non-severe');
			}
            jQuery('#wx-breaking-now').removeClass('wx-hide');
		}
		
		//Hurricane and Tropical storm pages have a background with a white square burned into it for content. The new header
		//consider testing for specific backgrounds
		if(TWC.pco.get('page.pageId')=='62976'){
			if(breakingNowActive) {
				$('.wx-hc-landing-title').css({"margin-bottom":"20px"});
			}else{
				$('.wx-hc-landing-title').css({"margin-bottom":"52px"});
			}
		}

		if(TWC.pco.get('page.pageId')=='62984'){
			if(breakingNowActive) {
				$('.wx-hurricane-title-banner h1').css({"margin-bottom":"20px"});
			}else{
				$('.wx-hurricane-title-banner h1').css({"margin-bottom":"52px"});
			}
		}
		
		if(searchCriteria !="" && searchtext!="" && searchCriteria !=null && searchtext!=null){            		
			TWC.Tools.ifEventReady(['fb_initiated']).then(function(res){				
				getLoginStatus();
			});			
			searchCriteria = jQuery.trim(searchCriteria.toUpperCase());		
			searchtext = jQuery.trim(searchtext.toUpperCase());	

			jQuery("#twc-breaking-fb-login").click(function() {                                                                 
				FB.login(function(response){
					if(response.authResponse){
						accessToken = response.authResponse.accessToken;								
						jQuery(".wx-social-friends").addClass('wx-hide');            
						jQuery(".twc-breaking-now-facebook-detail").removeClass('wx-hide');                   
						jQuery(".wx-breaking-now-filter").removeClass('wx-hide');
						//getFriends();
						if(typeof(TWC.Tools) != "undefined") {	
							TWC.Tools.getEvent('fb_loggedin').resolve();
						}
						jQuery(".twc-breaking-now-list").addClass('wx-bn-FBLoggedIn');
					} else {
						// User Not logged in   							
						jQuery(".wx-social-friends").removeClass('wx-hide');  
						jQuery(".twc-breaking-now-list").removeClass('wx-bn-FBLoggedIn');
					}
				}, {scope:'read_friendlists,friends_location,user_location'});	
				
				/* user_relationships,publish_stream,user_groups, */
				sc_trackAction(this,'breaknow_FBauth_click',null);
			});
			
			// Breaking now bar
			jQuery("#twc-breaking-now-facebook-detail-list-id li").live('click',function() { 
				setPopupValue();
				jQuery(".profileClicked").removeClass("profileClicked");
				jQuery(this).addClass("profileClicked");
				var to = jQuery(this).attr('id');	 	
				var from = 'Breakingnowbar';
				showFeedPostWindow(to, from);
			});
			
			jQuery('.wx-social-friends').each(function(index, Element) {
				var friendslist	="";
				jQuery("#twc-view-friends-list-id li").live('click',function(){                                             
					var place = jQuery(this).attr('id');                                                                              
					var cl = '.twc-list-'+place;
					jQuery(cl).toggle();
					var c2 = '.wx-view-more-'+place+' h1';
					jQuery(c2).toggle(); 
					if(friendslist.indexOf(cl) == -1) {
						var size = jQuery(this).attr('size');  												
						if(size > 30) {
							jQuery(cl).carousel({ pagination: true, direction: "horizontal"});
							friendslist = friendslist + "," +cl;
							jQuery(cl).addClass("wx-my-friend-city-more");
						} else {							
							friendslist = friendslist + "," +cl;
							jQuery(cl).addClass("wx-my-friend-city-more");							
						}
					}					
					sc_trackAction(this,'my friendswx_bn_friend_more_click',null);
				});             								                                                        
				
				// My Friends
				jQuery("#twc-breaking-now-facebook-friends-list-id li").live('click',function() { 
					setPopupValue();
					jQuery(".profileClicked").removeClass("profileClicked");						
					jQuery(this).addClass("profileClicked");
					var to = jQuery(this).attr('id');
					var from ='MyFriends';
					showFeedPostWindow(to, from);
				});                                           
							
				// My Friends more
				jQuery("#twc-my-friend-facebook-friends-list-id li div.wx-thumb-selected").live('click',function() {
					setPopupValue();                                             
					jQuery(".profileClicked").removeClass("profileClicked");
					jQuery(this).addClass("profileClicked");
					var to = jQuery(this).attr('id');	 	
					var from = 'MyFriends';
					showFeedPostWindow(to, from);
				});							
				
				// Family
				jQuery("#twc-breaking-now-family-list-id li").live('click',function() {    
					setPopupValue();
					jQuery(".profileClicked").removeClass("profileClicked");
					jQuery(this).addClass("profileClicked");				
					var to = jQuery(this).attr('id');	
					var from = 'Family';
					showFeedPostWindow(to, from);
				}); 
				
				//Family Friend more
				var famlist	="";
				jQuery("#twc-view-family-list-id li").live('click',function() {                                             
					var size = jQuery(this).attr('size');                                                                               
					var cl = '.twc-list-family';
					jQuery(cl).toggle();
					var c2 = '.wx-view-more-family h1';
					jQuery(c2).toggle(); 
					if(famlist.indexOf(cl) == -1) {						
						if(size > 9) {
							jQuery(cl).carousel({ pagination: true, direction: "horizontal"});
							famlist = famlist + "," +cl;
							jQuery(cl).addClass("wx-my-friend-city-more");
						} else {						
							famlist = famlist + "," +cl;
							jQuery(cl).addClass("wx-my-friend-city-more");							
						}
					}					
					sc_trackAction(this,'myfriendswx_bn_family_more_click',null);
				});  
				
				jQuery("#twc-family-list-id li div.wx-thumb-selected").live('click',function() { 
					setPopupValue();
					jQuery(".profileClicked").removeClass("profileClicked");
					jQuery(this).addClass("profileClicked");
					var to = jQuery(this).attr('id');	 	
					var from = 'Family'
					showFeedPostWindow(to, from);
				});
				
				// Close Friends
				jQuery("#twc-breaking-now-close-friends-list-id li").live('click',function() {                           
					setPopupValue();
					jQuery(".profileClicked").removeClass("profileClicked");
					jQuery(this).addClass("profileClicked");
					var to = jQuery(this).attr('id');	 	
					var from = 'Close';
					
					showFeedPostWindow(to, from);
				}); 
				
				//Close Friend more
				var clfriendslist	="";
				jQuery("#twc-view-close-friends-list-id li").live('click',function() { 					
					var size = jQuery(this).attr('size');                               
					var cl = '.twc-close-friends-list';
					jQuery(cl).toggle();
					var c2 = '.wx-view-more-close h1';
					jQuery(c2).toggle(); 
					if(clfriendslist.indexOf(cl) == -1) {						
						if(size > 9) {
							jQuery(cl).carousel({ pagination: true, direction: "horizontal"});
							clfriendslist = clfriendslist + "," +cl;
							jQuery(cl).addClass("wx-my-friend-city-more");
						} else {						
							clfriendslist = clfriendslist + "," +cl;
							jQuery(cl).addClass("wx-my-friend-city-more");							
						}
					}					
					sc_trackAction(this,'myfriendswx_bn_family_more_click',null);
				}); 
				
				jQuery("#twc-close-friends-list-id li div.wx-thumb-selected").live('click',function(){ 
					setPopupValue();
					jQuery(".profileClicked").removeClass("profileClicked");
					jQuery(this).addClass("profileClicked");
					var to = jQuery(this).attr('id');	
					var from = 'Close';
					showFeedPostWindow(to, from);
				}); 				
			});
			
			TWC.Tools.ifEventReady(['fb_loggedin']).then(function(res){
				if(fb_loggedinEventFired == 'false') {
					fb_loggedinEventFired = 'true';
					jQuery(".wx-social-friends").addClass('wx-hide');
					jQuery(".twc-breaking-now-facebook-detail").removeClass('wx-hide');    
					jQuery(".wx-breaking-now-filter").removeClass('wx-hide');
					getFriends();
				}				
			});
		} 
	});
	jQuery(document).mouseup(function (e) {
		var container = jQuery(".wx-popup-box");
		if (container.has(e.target).length === 0) {			
			 container.hide();
		}
	});	
	
	/**
	 * New method to show the FB's share UI instead of custom window.
	 */
	function showFeedPostWindow(toID, from) {
		var actionId = "";					
		var campaignStr = "";
		if(from == 'Breakingnowbar') {
			actionId = 'breaknow_myfriendswx_share_click';
			campaignStr = '?cm_ven=Facebook&cm_cat=fb_breaknow_myfriendswx_rec';
		} else if(from == 'MyFriends') {
			actionId = 'myfriendswx_bn_friend_share_click';
			campaignStr = '?cm_ven=Facebook&cm_cat=fb_myfriendswx_bn_friend_rec';
		} else if(from == 'Family' || from == 'Close') {
			actionId = 'myfriendswx_bn_familyclose_share_click';
			campaignStr = '?cm_ven=Facebook&cm_cat=fb_myfriendswx_bn_familyclose_rec';
		}
		sc_trackAction(this,actionId,null);
		
        var obj = {
			  method: 'feed',
			  link: bralertURL+campaignStr,
			  picture: 'http://s.imwx.com//img/layout/TWC_logo_84x84.gif',
			  name: bralertmsg,
			  caption: bralertURL,
			  description: bralertDesc,
			  to: toID
        };

        function callback(response) {
        	if (!response || response.error) {
        		jQuery(".profileClicked").removeClass("profileClicked");
        		if(!response) {
					var shtype = jQuery("#timeShareType").val();										
					if(shtype == "breakingShare") {															
						var actionId = "";
						if(from == 'Breakingnowbar') {
							actionId = 'breaknow_myfriendswx_close_click';
						} else if(from == 'MyFriends') {
							actionId = 'myfriendswx_bn_friend_close_click';						
						} else if(from == 'Family' || from == 'Close') {
							actionId = 'myfriendswx_bn_family_close_click';
						} 					
						sc_trackAction(this,actionId,null);					
					}
        		}
        		else {
        			jQuery(".profileClicked").append('<div class="wx-social-bg wx-failure-notice"></div><div class="wx-social-bg wx-failure-notice-bg"></div>');
        		}
    		} else {
    			var pageType = (TWC.pco.get("metrics") && TWC.pco.get("metrics").level2) ? TWC.pco.get("metrics").level2 : "";	
    			sc_trackSocialLinks(this,'eVar21,eVar22,eVar24,campaign,events','event64,event57','event64,event57','Facebook',[pageType,'_breaknow'].join(''),'breaknow',null,'My Friend\'s Weather Share',null);
    			postAlert();
    		}
        }

        // calling the API ...
        FB.ui(obj, callback);
		
	}
	 	
	function getFriends(){                	
		FB.api('/me', {fields:"id,name,picture"},function(response){    
			showFriends();                                                 
		});
	}
	
	function showFriends(){                               
		_friends = [];
		var _friends_location_ids = ",";
		
		var famTemp= [];
		var clTemp= [];
		
		FB.api({
			method: 'fql.query',
			query: 'SELECT uid, flid FROM friendlist_member WHERE flid IN (SELECT flid FROM friendlist WHERE owner=me() and type = "family")'
			}, function(rs) { 
			 var fasize = rs.length;				
				for(var i=0;i<fasize;i++){                                                                  									
					var id =rs[i].uid;  					
					famTemp.push(id);				                                            
				}
        });
		
		FB.api({
			method: 'fql.query',
			query: 'SELECT uid, flid FROM friendlist_member WHERE flid IN (SELECT flid FROM friendlist WHERE owner=me() and type = "close_friends")'
			}, function(rs) { 
			  var clsize = rs.length;			
				for(var i=0;i<clsize;i++){                                                                  					
					var clf = "";
					var id =rs[i].uid;  					
					clTemp.push(id);				                                            
				}
		});
		FB.api({
			method: 'fql.query',
			query: 'SELECT uid,username, name, pic_square, current_location from user where uid in (SELECT uid2 from friend where uid1 = me())'
			}, function(rs) {	
			var fsize = rs.length; 
			for(var i=0;i<fsize;i++){    
				var friend = "";
				var id =rs[i].uid;
				friend = "id="+id+";name="+rs[i].name+";pic_square="+ rs[i].pic_square+";";
				if(rs[i].current_location != null && rs[i].current_location.id != null) {
					friend = friend+"current_locationid="+ rs[i].current_location.id+";"
					friend = friend+"current_locationname="+ rs[i].current_location.name+";"
					if(rs[i].current_location.city != null) {
									friend = friend+"city="+ rs[i].current_location.city+";"
					}
					if(rs[i].current_location.state != null) {
									friend = friend+"state="+ rs[i].current_location.state+";"
					}                                                                              
					if(rs[i].current_location.country != null) {
									friend = friend+"country="+ rs[i].current_location.country+";"
					}                                                                              
					if(_friends_location_ids.indexOf(","+rs[i].current_location.id+",",0) == -1) {
									_friends_location_ids = _friends_location_ids +rs[i].current_location.id+",";
					}
				} 
				_friends.push(friend);
				                                             
			}
			_friends_location_ids = _friends_location_ids.substring(1, _friends_location_ids.length-1)
			var location_array = _friends_location_ids.split(",");                          		
			FB.api({
				method: 'fql.query',
				query: 'SELECT page_id,name,latitude,longitude FROM place WHERE page_id IN ('+ location_array +')'
				}, function(locrs) {	
				_location = [];     				
				for(var i=0;i<locrs.length;i++){ 					
					_location.push(locrs[i].page_id + ";" + locrs[i].latitude + ";" + locrs[i].longitude + ";" + locrs[i].name);
				}  						
				_location = ascLocation(_location);
				_suser = [];
				_suser = searchUser();
				if(_suser.length >0){   
					affLength = _suser.length;								
					for(var fa=0; fa<famTemp.length; fa++){
						var famId = famTemp[fa];
						for(var f=0; f<_suser.length; f++){
							var fr = _suser[f];                                                         
							var frId = fr.substring(fr.indexOf("id=")+3, fr.indexOf(";",fr.indexOf("id=")+3)); 
							if(famId == frId) {
								_family.push(fr);
								_suser.splice(f,1);
							}
						}		
					}
					
					for(var fa=0; fa<clTemp.length; fa++){
						var clId = clTemp[fa];
						for(var f=0; f<_suser.length; f++){
							var fr = _suser[f];                                                         
							var frId = fr.substring(fr.indexOf("id=")+3, fr.indexOf(";",fr.indexOf("id=")+3)); 
							if(clId == frId) {
								_clFriends.push(fr);
								_suser.splice(f,1);
							}
						}		
					}
					jQuery("#twc-breaking-now-facebook-count").html(affLength + " FRIENDS POSSIBLY AFFECTED" );
					showSearchedUsers();
				} else {					
					var str = "0 FRIENDS IN AREA";
					jQuery("#twc-breaking-now-facebook-count").html(str);
					//jQuery("#twc-facebook-detail-sub-title-id").html(str);
					//jQuery("#twc-facebook-detail-sub-title-id").removeClass("wx-hide");
					//jQuery("#twc-breaking-now-facebook-detail-list-id").html('');				
				}
			});			                                         						
		});                                                           					
	}
	
	function searchUser(){                         
		var _seuser = [];                                               
		
		var stext = "";
		if(searchCriteria == "CITYSEARCH") {                                               
			var citySt = searchtext.split(";");
			for(var j = 0;j< citySt.length;j++){
				var temp = citySt[j].split(",");
				if(temp.length == 2) {
					var city = jQuery.trim(temp[0].toUpperCase());										
					var state = jQuery.trim(temp[1].toUpperCase());				
					for(var i = 0;i< _friends.length;i++){
						var fr = _friends[i];   
						if(fr.indexOf(";city=") != -1 && fr.indexOf(";state=") != -1) {
							var fr_city = fr.substring(fr.indexOf(";city=")+6, fr.indexOf(";",fr.indexOf(";city=")+6));
							fr_city = fr_city.toUpperCase();
							var fr_state = fr.substring(fr.indexOf(";state=")+7, fr.indexOf(";",fr.indexOf(";state=")+7));
							fr_state = fr_state.toUpperCase();								
							if((fr_city.indexOf(city) != -1) && (fr_state.indexOf(state) != -1)) {							
								_seuser.push(fr);
							}                                              
						}					                           
					}		
				}				
			}					
		} else if(searchCriteria == "STATESEARCH") {
			var state = searchtext.split(",");
			for(var j = 0;j< state.length;j++){
				stext = state[j].toUpperCase();
				for(var i = 0;i< _friends.length;i++){
					var fr = _friends[i];
					var result = "no";
					if(fr.indexOf(";current_locationname=") != -1) {
						var fr_locationname = fr.substring(fr.indexOf(";current_locationname=")+22, fr.indexOf(";",fr.indexOf(";current_locationname=")+22));
						fr_locationname = fr_locationname.toUpperCase();
						if(fr_locationname.indexOf(stext) != -1) {
							_seuser.push(fr);
							result = "yes";
						}
					} 
					if( result == "no" && fr.indexOf(";state=") != -1) {
						var fr_state = fr.substring(fr.indexOf(";state=")+7, fr.indexOf(";",fr.indexOf(";state=")+7));
						fr_state = fr_state.toUpperCase();
						if(fr_state.indexOf(stext) != -1) {
							_seuser.push(fr);
							result = "yes";
						}                                              
					}                                              
																
				}
			}			 
		}else if(searchCriteria == "LATLONGSEARCH"){			
			var _latlong = searchtext.split(";");			
			for(var i = 0;i< _latlong.length;i++){                                    
				var latlong_array = _latlong[i].split(":");				
				if(latlong_array.length == 2) {
					var lat1 = parseInt(latlong_array[0]);
					var lon1 = parseInt(latlong_array[1]);					 					
					var distance = parseInt(radius);
					for(var j = 0;j< _location.length;j++){
						var loc = _location[j].split(";");
						var loc_id = loc[0];
						var lat2 = parseInt(loc[1]);
						var lon2 = parseInt(loc[2]);
						
						var R = 3963; // miles .. use 6371 for km
						var dLat = (lat2-lat1).toRad();
						var dLon = (lon2-lon1).toRad(); 
						var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
														Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) * 
														Math.sin(dLon/2) * Math.sin(dLon/2); 
						var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
						var dist = R * c; //miles
						if(dist <= distance) {
							for(var k = 0;k< _friends.length;k++){
								var fr = _friends[k];
								var fr_loc_id = fr.substring(fr.indexOf(";current_locationid=")+20, fr.indexOf(";",fr.indexOf(";current_locationid=")+20));
								if(fr_loc_id == loc_id) {
									_seuser.push(fr);
								}
							}                                                                                              
						}
					}
				}
			}
		 
		} else {
			//alert("Select a search Criteria");
		}           		
		return _seuser;
	}
					
	function showSearchedUsers(){
        /*
		var fstr  = ''; 	
		var _ascUser = _family.concat(_clFriends, _suser);
        var friend_disp = ($('#wx-breaking-now').hasClass('bn-mini') ? 3 : 4);
        
		for(var i=0;i<_ascUser.length;i++){
			var fr = _ascUser[i];                                                         
			var id = fr.substring(fr.indexOf("id=")+3, fr.indexOf(";",fr.indexOf("id=")+3));                                    
			var name = fr.substring(fr.indexOf(";name=")+6, fr.indexOf(";",fr.indexOf(";name=")+6)); 
			var pic_square = fr.substring(fr.indexOf(";pic_square=")+12, fr.indexOf(";",fr.indexOf(";pic_square=")+12));
			if(i<friend_disp) {
				fstr+='<li id='+id+' name='+name+' thumb='+pic_square+' >';
				fstr+='<div class="twc-thumb-profile" title="'+name+'">';
				fstr+='<img src="'+pic_square+'" />';
				fstr+='</div>';
				fstr+="</li>";
			}
		}              
		
		jQuery("#twc-breaking-now-facebook-detail-list-id").html(fstr);
		if((affLength-friend_disp) >0) {
			var rem = '<a href="/social/my-friends-weather/breaking" from="breaknow_friendicon_more_click">+' + (affLength-friend_disp)  + ' more</a>';
			jQuery("#twc-facebook-breaking-sub-head-id").html(rem);
		} else {
			var rem = '<a href="/social/my-friends-weather/breaking" from="breaknow_friendicon_more_click">notify friends <span class="wx-icon wx-arrow wx-w-sm-rt"></span></a>';
			jQuery("#twc-facebook-detail-sub-title-id").html(rem);
			jQuery("#twc-facebook-detail-sub-title-id").removeClass("wx-hide");
		}   		
		*/ 						
		var count = "<span class='wx-my-friend-count'>" + affLength + "</span> friends possibly affected";					
		jQuery(".wx-my-friend-counter").html(count);
		jQuery(".wx-my-friend-counter").show();
		
		
		if(_family.length>0 || _clFriends.length>0 || _suser.length>0) {
			jQuery(".wx-mfw-friends-info").removeClass("wx-hide");
		}
		
		if(_family.length>0){
			jQuery(".wx-main-friends").removeClass("wx-hide");				
			groupFamily();
		}				
		if(_clFriends.length>0){
			jQuery(".wx-main-friends").removeClass("wx-hide");	
			groupCloseFriends();
		}			
		if(_suser.length>0){
			groupFriends();
		}	                                      
			
	}
	
	function groupFriends() {                                                  
		var groupUser=""; 
		var tempId = 0;
		for(var i = 0;i< _location.length;i++){	
			var _sguser = [];		
			var groupString = _location[i].split(";");	
			var placeid= groupString[0];
			var place = groupString[3];							
			for(var j = 0;j< _suser.length;j++){
				var fr = _suser[j];
				var result = "no";
				if(fr.indexOf(";current_locationid=") != -1) {
					var fr_locationname = fr.substring(fr.indexOf(";current_locationid=")+20, fr.indexOf(";",fr.indexOf(";current_locationname=")+20));
					fr_locationname = fr_locationname.toUpperCase();
					if(fr_locationname.indexOf(groupString[0]) != -1) {
						_sguser.push(fr);
						result = "yes";
					}
				} 
			}							
			
			if(_sguser.length>0){					
				groupUser += '<div class="wx-my-friend-city"  id="wx-my-friend-city-id-'+tempId+'"><p class="wx-my-friend-head-title"><strong> '+ place +'</strong> friends possibly affected ('+ _sguser.length + ' Friends)</p>';
				groupUser += '<div class="wx-my-friend-city-inner"><ul class="twc-breaking-now-facebook-detail-list wx-my-friend-list" id="twc-breaking-now-facebook-friends-list-id">';
				tempId++;
				_guser = ascFriends(_sguser);  
				var temp ="";
				var disp = 1;
				for(var k=0;k<_guser.length;k++){
					var fr = _guser[k];                                                            
					var id = fr.substring(fr.indexOf("id=")+3, fr.indexOf(";",fr.indexOf("id=")+3));                                                    
					var name = fr.substring(fr.indexOf(";name=")+6, fr.indexOf(";",fr.indexOf(";name=")+6)); 
					var pic_square = fr.substring(fr.indexOf(";pic_square=")+12, fr.indexOf(";",fr.indexOf(";pic_square=")+12));					
					if(k<5){
						pic_square = 'https://graph.facebook.com/' + id + '/picture?type=large&width=100&height=100'; 
						temp+='<li id='+id+' name='+name+' count='+k+' thumb='+pic_square+'>';
						temp+='<div class="wx-social-bg wx-thumb-bg"></div>';
						temp+='<div class="wx-list-profile-name">'+name+'</div>';
						temp+='<div class="twc-thumb-profile twc-thumb-profile-'+k+'" title="'+name+'">';
						temp+='<img src="'+pic_square+'" />';
						temp+='</div>';
						temp+="</li>";
					} else if(k==5) {	                                                                    
						temp += '</ul><ul id="twc-view-friends-list-id" class="twc-breaking-now-facebook-detail-list wx-my-friend-list"><li id='+placeid+' size='+(_guser.length-5)+' class="wx-view-more wx-view-more-'+placeid+'"> <h1>View <br /> more<span class="wx-icon wx-arrow wx-mb-sm-dn"></span></h1><h1 style="display:none">View <br /> less<span class="wx-icon wx-arrow wx-mb-sm-up"></span></h1></li></ul></div><div class="twc-list-'+placeid+'" style="display:none;"><ul class="wx-my-friend-list-more" id="twc-my-friend-facebook-friends-list-id"><li>';
						temp+='<div id='+id+' name='+name+' count='+k+' thumb='+pic_square+' class="wx-thumb-selected">';
						temp+='<div class="twc-thumb-profile" title="'+name+'">';
						temp+='<img src="'+pic_square+'" />';
						temp+='</div>';
						temp+='<div class="wx-list-profile-name"><span>'+name+'</span></div>';
						temp+="</div>";
					} else if(k>5) {    
						if(disp%30==0 && disp!=0){   			
							temp+='</li><li><div id='+id+' name='+name+' count='+k+' thumb='+pic_square+' class="wx-thumb-selected">';
							temp+='<div class="twc-thumb-profile" title="'+name+'">';
							temp+='<img src="'+pic_square+'" />';
							temp+='</div>';
							temp+='<div class="wx-list-profile-name"><span>'+name+'</span></div>';
							temp+="</div>";                                                                        
						} else {
							temp+='<div id='+id+' name='+name+' count='+k+' thumb='+pic_square+' class="wx-thumb-selected">';
							temp+='<div class="twc-thumb-profile" title="'+name+'">';
							temp+='<img src="'+pic_square+'" />';
							temp+='</div>';
							temp+='<div class="wx-list-profile-name"><span>'+name+'</span></div>';
							temp+="</div>";   
						}
						                      
						disp++;
					} 								
				}   
				groupUser += temp;
				if(_guser.length >5){
					groupUser += "</li></ul></div></div>";
				} else {
					groupUser += "</ul></div></div>";
				}				
			}	 
		}      
		jQuery("#wx-my-friend-city-cntr-id").html(groupUser);
	}
	
	function ascFriends(_ascuser){  
		_ascuser.sort(function(a, b){                                                                      
			var nameA=a.substring(a.indexOf(";name=")+6, a.indexOf(";",a.indexOf(";name=")+6)).toLowerCase(), nameB=b.substring(b.indexOf(";name=")+6, b.indexOf(";",b.indexOf(";name=")+6)).toLowerCase()
			if (nameA < nameB) //sort string ascending
			  return -1 
			if (nameA > nameB)
			  return 1
			return 0 //default return value (no sorting)
		})             
		return _ascuser;
	}
	
	function ascLocation(_ascLoc){  
		_ascLoc.sort(function(a, b){  
			var locAString = a.split(";");				
			var locA = locAString[3];			
			var locBString = b.split(";");				
			var locB = locBString[3];				
			if (locA < locB) //sort string ascending
			  return -1 
			if (locA > locB)
			  return 1
			return 0 //default return value (no sorting)
		})             
		return _ascLoc;
	}
	 
	if (typeof(Number.prototype.toRad) === "undefined") {
	  Number.prototype.toRad = function() {
					return this * Math.PI / 180;
	  }
	}                  
	
	function postAlert() {
		jQuery(".wx-popup-box").css("display","none"); 
		jQuery("#feedform_user_message").val("");
		jQuery(".profileClicked").append('<div class="wx-social-bg wx-confirmed-notice"></div>');
		jQuery(".profileClicked").removeClass("profileClicked");
		FB.api(
		'/me/'+fbCustomActionType,
		'post',
		{ breaking_now_weather: fbCustomActionUrl },
		function(response) {
		   if (!response || response.error) {
			 // alert('Error occured ');
		   } else {
			  //alert(' Weather 2 Alert Success! Action ID: ' + response.id);
		   }
		});
	}
	
	function groupCloseFriends() {                                                  
		var groupUser=""; 										
		if(_clFriends.length>0){					
			groupUser += '<div class="wx-my-friend-city"><p class="wx-my-friend-head-title"><strong>Close Friends Possibly Affected ('+ _clFriends.length + ')</strong></p>';                             
			groupUser += '<div class="wx-my-friend-city-inner"><ul class="twc-breaking-now-facebook-detail-list wx-my-friend-list" id="twc-breaking-now-close-friends-list-id">';
			_clFriends = ascFriends(_clFriends);                                   
			var temp ="";
			var disp = 1;
			for(var k=0;k<_clFriends.length;k++){
				var fr = _clFriends[k];                                                            
				var id = fr.substring(fr.indexOf("id=")+3, fr.indexOf(";",fr.indexOf("id=")+3));                                                    
				var name = fr.substring(fr.indexOf(";name=")+6, fr.indexOf(";",fr.indexOf(";name=")+6)); 
				var pic_square = fr.substring(fr.indexOf(";pic_square=")+12, fr.indexOf(";",fr.indexOf(";pic_square=")+12));												
				var city = fr.substring(fr.indexOf(";current_locationname=")+22, fr.indexOf(";",fr.indexOf(";current_locationname=")+22));
				if(k<5){
					pic_square = 'https://graph.facebook.com/' + id + '/picture?type=large&width=100&height=100'; 
					temp+='<li id='+id+' name='+name+' count='+k+' thumb='+pic_square+' title="'+city+'">';
					temp+='<div class="wx-social-bg wx-thumb-bg"></div>';
					temp+='<div class="wx-list-profile-name">'+name+'</div>';
					temp+='<div class="twc-thumb-profile twc-thumb-profile-'+k+'">';
					temp+='<img src="'+pic_square+'" />';
					temp+='</div>';
					temp+="</li>";
				} else if(k==5) {	                                                                    
					temp += '</ul><ul id="twc-view-close-friends-list-id" class="twc-breaking-now-facebook-detail-list wx-my-friend-list"><li class="wx-view-more wx-view-more-close" size="'+(_clFriends.length-5)+'" > <h1>View <br /> more<span class="wx-icon wx-arrow wx-mb-sm-dn"></span></h1><h1 style="display:none">View <br /> less<span class="wx-icon wx-arrow wx-mb-sm-up"></span></h1></li></ul></div><div class="twc-close-friends-list" style="display:none;"><ul class="wx-my-friend-list-more" id="twc-close-friends-list-id"><li>';
					temp+='<div id='+id+' name='+name+' count='+k+' thumb='+pic_square+' class="wx-thumb-selected" title="'+city+'">';
					temp+='<div class="twc-thumb-profile">';
					temp+='<img src="'+pic_square+'" />';
					temp+='</div>';
					temp+='<div class="wx-list-profile-name"><span>'+name+'</span></div>';
					temp+="</div>";
				} else if(k>5) {    
					if(disp%9==0 && disp!=0){   			
						temp+='</li><li><div id='+id+' name='+name+' count='+k+' thumb='+pic_square+' class="wx-thumb-selected"  title="'+city+'">';
						temp+='<div class="twc-thumb-profile">';
						temp+='<img src="'+pic_square+'" />';
						temp+='</div>';
						temp+='<div class="wx-list-profile-name"><span>'+name+'</span></div>';
						temp+="</div>";                                                                        
					} else {
						temp+='<div id='+id+' name='+name+' count='+k+' thumb='+pic_square+' class="wx-thumb-selected" title="'+city+'">';
						temp+='<div class="twc-thumb-profile">';
						temp+='<img src="'+pic_square+'" />';
						temp+='</div>';
						temp+='<div class="wx-list-profile-name"><span>'+name+'</span></div>';
						temp+="</div>";   
					}				  
					disp++;
				} 								
			}   
			groupUser += temp;			
			if(_clFriends.length >5){
				groupUser += "</li></ul></div></div>";
			} else {
				groupUser += "</ul></div></div>";
			}
		}
			   
		jQuery("#wx-my-close-friends-city-cntr-id").html(groupUser);
	}	
	
	function groupFamily() {                                                  
		var groupUser=""; 										
		if(_family.length>0){					
			groupUser += '<div class="wx-my-friend-city"><p class="wx-my-friend-head-title"><strong>Family Possibly Affected ('+ _family.length + ')</strong></p>';                             
			groupUser += '<div class="wx-my-friend-city-inner"><ul class="twc-breaking-now-facebook-detail-list wx-my-friend-list" id="twc-breaking-now-family-list-id">';
			_family = ascFriends(_family);                                   
			var temp ="";
			
			var disp = 1;
			for(var k=0;k<_family.length;k++){
				var fr = _family[k];                                                            
				var id = fr.substring(fr.indexOf("id=")+3, fr.indexOf(";",fr.indexOf("id=")+3));                                            
				var name = fr.substring(fr.indexOf(";name=")+6, fr.indexOf(";",fr.indexOf(";name=")+6));
				var pic_square = fr.substring(fr.indexOf(";pic_square=")+12, fr.indexOf(";",fr.indexOf(";pic_square=")+12));								
				var city = fr.substring(fr.indexOf(";current_locationname=")+22, fr.indexOf(";",fr.indexOf(";current_locationname=")+22));
				if(k<5){
					pic_square = 'https://graph.facebook.com/' + id + '/picture?type=large&width=100&height=100'; 
					temp+='<li id='+id+' count='+k+' name='+name+' thumb='+pic_square+' title="'+city+'">';
					temp+='<div class="wx-social-bg wx-thumb-bg"></div>';
					temp+='<div class="wx-list-profile-name">'+name+'</div>';
					temp+='<div class="twc-thumb-profile twc-thumb-profile-'+k+'">';
					temp+='<img src="'+pic_square+'" />';
					temp+='</div>';
					temp+="</li>";
				} else if(k==5) {
					temp += '</ul><ul id="twc-view-family-list-id" class="twc-breaking-now-facebook-detail-list wx-my-friend-list"><li class="wx-view-more wx-view-more-family" size="'+(_family.length-5)+'" > <h1>View <br /> more<span class="wx-icon wx-arrow wx-mb-sm-dn"></span></h1><h1 style="display:none">View <br /> less<span class="wx-icon wx-arrow wx-mb-sm-up"></span></h1></li></ul></div><div class="twc-list-family" style="display:none;"><ul class="wx-my-friend-list-more" id="twc-family-list-id"><li>';
					temp+='<div id='+id+' count='+k+' name='+name+' thumb='+pic_square+' class="wx-thumb-selected" title="'+city+'">';
					temp+='<div class="twc-thumb-profile">';
					temp+='<img src="'+pic_square+'" />';
					temp+='</div>';
					temp+='<div class="wx-list-profile-name"><span>'+name+'</span></div>';
					temp+="</div>";
				} else if(k>5) {
					if(disp%9==0 && disp!=0){
						temp+='</li><li><div id='+id+' count='+k+' name='+name+' thumb='+pic_square+' class="wx-thumb-selected" title="'+city+'">';
						temp+='<div class="twc-thumb-profile">';
						temp+='<img src="'+pic_square+'" />';
						temp+='</div>';
						temp+='<div class="wx-list-profile-name"><span>'+name+'</span></div>';
						temp+="</div>";
					} else {
						temp+='<div id='+id+' name='+name+' count='+k+' thumb='+pic_square+' class="wx-thumb-selected" title="'+city+'">';
						temp+='<div class="twc-thumb-profile">';
						temp+='<img src="'+pic_square+'" />';
						temp+='</div>';
						temp+='<div class="wx-list-profile-name"><span>'+name+'</span></div>';
						temp+="</div>";
					}
					disp++;
				}
			}
			groupUser += temp;
			if(_family.length >5){
				groupUser += "</li></ul></div></div>";
			} else {
				groupUser += "</ul></div></div>";
			}
		}		
		jQuery("#wx-my-family-cntr-id").html(groupUser);
	}
	function getLoginStatus(){
		FB.getLoginStatus(function(response){
			if(response.authResponse){
				accessToken = response.authResponse.accessToken;															
				// User Already logged in.
				//getFriends();					
				if(typeof(TWC.Tools) != "undefined") {	
					TWC.Tools.getEvent('fb_loggedin').resolve();
					jQuery(".twc-breaking-now-list").addClass('wx-bn-FBLoggedIn');
				}
			} else{
				// User Not logged in     						
				jQuery(".wx-social-friends").removeClass('wx-hide');  
				jQuery(".twc-breaking-now-list").removeClass('wx-bn-FBLoggedIn');
			}											
		}); 				 
	}
	function setPopupValue(){
		jQuery(".wx-popup-story-title").html(bralertmsg);
		jQuery(".wx-popup-story-details").html(bralertDesc);
		jQuery(".wx-popup-story-caption").html(bralertURL);
		jQuery("#timeShareType").val("breakingShare");
	}
})(jQuery);






/* /managedfe/js/TWC/class/Dialog.js expireTime 1787 */


/***** TWC DIALOG v1.0 *****/

/*

Position property of dialogs must be fixed or absolute for them to display.

To open and close a dialog:

    TWC.Dialog.open($(dialog_selector));
    TWC.Dialog.close($(dialog_selector));

To re-center a dialog (for cases where the change event isn't fired):

    TWC.Dialog.center($(dialog_selector));

To prevent dialogs from closing when ESC key is pressed or modal is clicked (global setting):

    TWC.Dialog.settings({closeOnEsc: false, closeOnModal: false});

*/

'TWC' in window || (window.TWC = {});

(function($) {

    var pkg = TWC;

    pkg.Dialog = {

        init: function() {
    	    this.changeEvent = $('body.has-IE7, body.has-IE8').length ? 'resize' : 'DOMSubtreeModified';
            this.settings();
        },

        settings: function(opts) {
            this.opts = {
                dialogClass: 'wx-dialog',       // class the script adds to dialogs
                modalClass: 'wx-modal',         // class the script adds to modals
                modalID: '-modal',              // suffix the script adds to modal ID's (preceded by dialog ID)
                closeOnEsc: true,               // will close when ESC key is pressed
                closeOnModal: true              // will close when modal is clicked
            };
            $.extend(this.opts, opts);
        },

        open: function($el) {
            var self = this;
        	$el.each(function(){
        	    var $dialog = $(this);
        	    var dialogID, modalID, modal;
        		// store dialog's id or assign a random one
        		dialogID = $dialog.attr('id');
        		if (typeof dialogID == 'undefined'){
        			dialogID = self.opts.dialogClass + Math.floor(Math.random() * 100000);
        			$dialog.attr('id', dialogID);
        		}
        		// create and position modal
        		modalID = dialogID + self.opts.modalID;
        		$('<div id=\"' + modalID + '\" class=\"' + self.opts.modalClass + '\"></div>').appendTo('body');
        		modal = $('#' + modalID).css({
        		    position:'fixed',
        		    top:'0',
        		    left:'0'
        		});
        		stretch(modal);
        		// move dialog to end of body
        		$dialog.appendTo('body').addClass(self.opts.dialogClass).css('display', 'block');
        		self.center($dialog);
        		// bind browser-specific event to center dialog when its content changes size
        		$dialog.on(self.changeEvent + '.' + dialogID, function(){
        			self.center($dialog);
        		});
        		// bind events to keep dialog centered on window change
        		$(window).on('resize.' + dialogID, function(){
        			self.center($('#' + dialogID));
        			stretch(modal);
        		});
        		// close dialog when escape key is pressed (if another dialog hasn't been opened)
        		if (self.opts.closeOnEsc){
        		  $(document).on('keydown.' + dialogID, function(evt){
        				var charCode = evt.which ? evt.which : evt.keyCode;
        				if (charCode == 27 && !$('#' + dialogID + ' ~ .' + self.opts.dialogClass + ':visible').length){
        					self.close($('#' + dialogID));
        				}
        			});
        		}
        		// close dialog when modal is clicked
        		if (self.opts.closeOnModal){
        			modal.on('click.' + dialogID, function(){
        				self.close($('#' + dialogID));
        			});
        		}
        	});
        },

        close: function($el) {
            var self = this;
            $el.each(function(){
        	    var $dialog = $(this);
        		var dialogID = $dialog.attr('id');
        		// hide dialog and unbind events
        		$('#' + dialogID + self.opts.modalID).remove();
        		$dialog.off('.' + dialogID).hide();
        		$(document).off('.' + dialogID);
        		$(window).off('.' + dialogID);
        	});
        },

        center: function($el) {
        	$el.each(function(){
        	    var $dialog = $(this);
        	    var fixed = $dialog.css('position') == 'fixed' ? true : false;
            	var x = Math.max(Math.round(($(window).width() - $dialog.outerWidth()) / 2), 0);
            	var y = Math.max(Math.round(($(window).height() - $dialog.outerHeight()) / 2), 0);
            	if (!fixed) y += $(document).scrollTop();
            	$dialog.css({
            	    top: y,
            	    left: x
            	});
        	});
        }

    };

    // fill window with a single jQuery object
    function stretch($el){
      $el.width($('body').width()).height($('body').height());
    }

    $(document).ready(function() {
        pkg.Dialog.init();
    });
})(jQuery);





