// Script Name: abccom.js
// Author: Martin Ma
// Purpose: ABC.com Utility JS

var ABCCOM = ABCCOM || { utils:{}, theme:{} };

(function($) {

	// ABC.com utils functions
	ABCCOM.utils.isPreview = function() {
			return CDNRoot.indexOf('abcpreview')!=-1;
	};
		
	ABCCOM.utils.ieFlickerFix = function() {
			try { 
				document.execCommand( 'BackgroundImageCache', false, true ); 
			} catch(e) {} 
	};
		
	ABCCOM.utils.cacheBuster = function( url, iTTL ) {
			iTTL = iTTL || 300000;
			var sCacheBuster = 'ttl=';
			
			iTTL = parseInt( new Date().getTime() / iTTL );
			sCacheBuster += iTTL.toString();
			url = url.indexOf('?')!=-1 ? url+'&'+sCacheBuster : url+'?'+sCacheBuster;
			return url;
	};
		
	ABCCOM.utils.getCookie = function( name ) {
			var start = document.cookie.indexOf( name + "=" );
			var len = start + name.length + 1;
			if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
				return null;
			}
			if ( start == -1 ) return null;
			var end = document.cookie.indexOf( ';', len );
			if ( end == -1 ) end = document.cookie.length;
			return unescape( document.cookie.substring( len, end ) );
	 };
	
	ABCCOM.utils.setCookie = function( name, value, expires, path, domain, secure ) {
			var today = new Date();
			today.setTime( today.getTime() );
			if( expires ) {
				expires = expires * 1000 * 60 * 60 * 24;
			}
			var expires_date = new Date( today.getTime() + (expires) );
			document.cookie = name+'='+escape( value ) +
				( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + 
				( ( path ) ? ';path=' + path : '' ) +
				( ( domain ) ? ';domain=' + domain : '' ) +
				( ( secure ) ? ';secure' : '' );
	};
	
	ABCCOM.utils.deleteCookie = function( name, path, domain ) {
			if( this.getCookie(name) )
				document.cookie = name + '=' +
					( ( path ) ? ';path=' + path : '') +
					( ( domain ) ? ';domain=' + domain : '' ) +
					';expires=Thu, 01-Jan-1970 00:00:01 GMT';
	};
	
	ABCCOM.utils.getUsername = function() {
		var regCookie = ABCCOM.utils.getCookie('regCookie');
		var sUsername = '';
		if( regCookie ) {
			regCookie = regCookie.split(',');
			if( regCookie[0] && regCookie[1] ) {
				sUsername = regCookie[1].split('=')[1];
			}
		}
		return sUsername;
	};
	
	ABCCOM.utils.logout = function() {
		var sLogoutURL = 'https://register.go.com/abc/heliumapi/logout?appRedirect=';
		window.location.href = sLogoutURL + encodeURIComponent(window.location.href);
	};
	
	ABCCOM.utils.toQueryParams = function( sObj, sDelimiter ) {
		var r = {};
		sDelimiter = sDelimiter || '&';
		jQuery.each( sObj.split(sDelimiter), function(i,n) {
			var a = n.split('=');
			if(a[0]) r[a[0]]=a[1];
		});
		return r;
	};
	
	ABCCOM.utils.toQueryString = function( obj, sDelimiter ) {
		var r = [];
		sDelimiter = sDelimiter || '&';
		jQuery.each( obj, function(k, v) { r.push( k+'='+v ) });
		return r.join( sDelimiter );
	};
	
	ABCCOM.utils.getDeeplinkVar = function( sDelimiter ) {
		return ABCCOM.utils.toQueryParams( location.hash.substring(1), sDelimiter );
	};
	
	ABCCOM.utils.setDeeplinkVar = function( key, value ) {
		var r = ABCCOM.utils.getDeeplinkVar() || {};
		if(key) r[key]=value;
		location.hash = ABCCOM.utils.toQueryString( r );
		//console.log(ABCCOM.utils.toQueryString( r ));
	};
	
})(jQuery);


