// Use for save paths without login to parse the save data
String.implement({
	
	parseQueryString: function(){
	    var vars = this.split(/[&;]/), res = {};
	    if (vars.length) vars.each(function(val){
	      var index = val.indexOf('='),
	        keys = index < 0 ? [''] : val.substr(0, index).match(/[^\]\[]+/g),
	        value = decodeURIComponent(val.substr(index + 1)),
	        obj = res;
	      keys.each(function(key, i){
	        var current = obj[key];
	        if(i < keys.length - 1)
	          obj = obj[key] = current || {};
	        else if($type(current) == 'array')
	          current.push(value);
	        else
	          obj[key] = $defined(current) ? [current, value] : value;
	      });
	    });
	    return res;
	  },
	  
	getQueryString: function getQueryString(){
		  var qPos = this.indexOf('?');
		  return this.substr(qPos + 1);
	},

	cleanQueryString: function(method){
	    return this.split('&').filter(function(val){
	      var index = val.indexOf('='),
	      key = index < 0 ? '' : val.substr(0, index),
	      value = val.substr(index + 1);
	      return method ? method.run([key, value]) : $chk(value);
	    }).join('&');
	}
});

window.addEvent('domready', function() {
  
  var savebtn = $('save_page_btn');
  if(savebtn) {
    var favsbtn = $$('.myFavs').getLast();
    favsbtn.set('morph');
    favsbtn.setStyle('background-color', '#F3F3D4');
    savebtn.set('morph');
    /*savebtn.addEvent('mouseenter', function(e) {
      this.setStyle('background', 'url(/images/misc/bg_savePage.gif) no-repeat transparent 9px 0');
      this.morph({ height: 70, width: 120 });      
    });
    savebtn.addEvent('mouseleave', function(e) {
      this.setStyle('background', 'url(/images/icon_save_page_nt.gif) no-repeat transparent 18px 4px');
      this.morph({ height: 70, width: 120 });      
    });*/
    savebtn.addEvent('click', function(e) {
      var aloc = e.target.get('href');
	  if (aloc != '/marine/global/marine_favorites') {
		  e.stop();
	      dcsMultiTrack('DCS.dcssip','www.officer.marines.com','DCS.dcsuri','//navigation/SavePage.evt?Url=' + window.location,'WT.ti','NAV: Save Page to My Favorites','WT.cg_n','','WT.si_n','','WT.si_p','','WT.si_x','','WT.seg_1','','WT.vhseg_1','','WT.seg_2','','WT.vhseg_2','','WT.pn_sku','','WT.tx_u','','WT.tx_s','');
	  } else {
		  return;
	  }
	  
      var r = new Request.JSON({url: aloc, method: 'get', headers: {'X-Request': 'JSON'}, onComplete: function(result){
	        var favsbtn = $$('.myFavs').getLast();
	        favsbtn.set('morph');
    	    if(result && result != "e1" && result != "e2") {
    	        favsbtn.setStyle('background-color', '#F3F3D4');
    	        favsbtn.morph({ 'background-color': '#850004', color: '#fff' });
    	        this.set('text', 'Page Saved to Library');
    	        //this.setStyle('background', 'url(/images/misc/bg_savePage.gif)');
    	        this.morph({ 'text': 'Page Saved', color: '#000', opacity: .6 });
    	    } else if(result == "e1") {
    	        favsbtn.setStyle('background-color', '#F3F3D4');
    	        favsbtn.morph({ 'background-color': '#850004', color: '#fff' });
    	        
		    	var savePathCookie = Cookie.read('save_path') 
				? JSON.decode(Cookie.read('save_path')) 
				: new Array();
				
				var savePageData   = aloc.getQueryString().parseQueryString();
				
				if (!savePathCookie.contains(savePageData)) {
					savePathCookie.push(savePageData);
				}
				
				Cookie.write('save_path', JSON.encode(savePathCookie), { path: '/' });
				
    	        this.set('html', 'Login to My Library');
				this.set('href', '/marine/global/marine_favorites');
    	    } else if(result == "e2") {
    	        this.set('text', 'Page Already Saved');
    	    }
    	}.bind(this)});
      r.send();
      
    });
  }
  
});