/* SC-Tools */

sc_pool   = new Array();
sc_toggle = new Array();

function scSet(scKey,scValue) {
  sc_pool[scKey] = scValue;
}

function scGet(scKey) {
  return sc_pool[scKey];
}


function scPushResult() {
  if(sc_pool.enable_js_debug_info == 1) {
    scDebugValues("scPushResult()\n");
  };
  
  var s = s_gi(sc_pool['reportsuite']);
  s.pageName  = sc_pool['pageName'];
  s.server    = sc_pool['server'];
  s.channel   = sc_pool['channel'];
  s.pageType  = sc_pool['pageType'];
  s.visitorID = sc_pool['visitorID'];
  s.events    = sc_pool['events'];
  s.prop1     = sc_pool['prop1'];
  s.prop2     = sc_pool['prop2'];
  s.prop3     = sc_pool['prop3'];
  s.prop4     = sc_pool['prop4'];
  s.prop5     = sc_pool['prop5'];
  s.prop6     = sc_pool['prop6'];
  s.prop7     = sc_pool['prop7'];
  s.prop8     = sc_pool['prop8'];
  s.prop9     = sc_pool['prop9'];
  s.prop10    = sc_pool['prop10'];
  s.prop11    = sc_pool['prop11'];
  s.eVar3     = sc_pool['eVar3'];
  if(typeof s.t == 'function') { //s.t is not defined when omniture has been disable
	  var s_code=s.t();
	  if(s_code)document.write(s_code);
  }
}

function scDebugValues(s) {
  ds = scGatherValues(s);
  alert(ds);
}

function scGatherValues(s) {
  ds = '';
  ds += s;
  ds += "\nreportsuite => " + sc_pool['reportsuite'];
  ds += "\npageName => " + sc_pool['pageName'];
  ds += "\nserver => " + sc_pool['server'];
  ds += "\nchannel => " + sc_pool['channel'];
  ds += "\npageType => " + sc_pool['pageType'];
  ds += "\nvisitorID => " + sc_pool['visitorID'];
  ds += "\nevents => " + sc_pool['events'];
  ds += "\nprop1 => " + sc_pool['prop1'];
  ds += "\nprop2 => " + sc_pool['prop2'];
  ds += "\nprop3 => " + sc_pool['prop3'];
  ds += "\nprop4 => " + sc_pool['prop4'];
  ds += "\nprop5 => " + sc_pool['prop5'];
  ds += "\nprop6 => " + sc_pool['prop6'];
  ds += "\nprop7 => " + sc_pool['prop7'];
  ds += "\nprop8 => " + sc_pool['prop8'];
  ds += "\nprop9 => " + sc_pool['prop9'];
  ds += "\nprop10 => " + sc_pool['prop10'];
  ds += "\nprop11 => " + sc_pool['prop11'];
  ds += "\neVar3 => " + sc_pool['eVar3'];
  return ds;
}

function scToggleClick(s) {
  if(sc_toggle[s]) {
    n = sc_toggle[s];
    if(n==1) { n=0; } else { n=1; };
  } else {
     n = 1; // neuer wert
  };
  sc_toggle[s] = n;
}

function scGetToggle(s) {
  if(sc_toggle[s]) {
    return sc_toggle[s];
  } else {
    sc_toggle[s] = 0;
    return sc_toggle[s];
  };
}


// Prototype function to allow adding events on top of event stack
jQuery.fn.bindFirst = function(name, fn) {
	this.bind(name, fn);
	if(typeof(this.data('events')) != "undefined") {
		var handlers = this.data('events')[name.split('.')[0]];
		var handler = handlers.pop();
		handlers.splice(0, 0, handler);
	}
};

jQuery(document).ready(function(){
	// Inject onChange handler on top of stack
	jQuery(".omnitureTrackSelect").each(function(){
		jQuery(this).bindFirst("change", function(){
			var elem = jQuery(this);
			scSet('prop5', elem.data("type") + "_" + elem.find(":selected").text());
		});
	});

	// Add hook to submit event to push omniture data first
	jQuery(".omnitureTrackSelect").parent("form").submit(function(){
		var jsonData = {};
		for(i in sc_pool) {
			jsonData[i.toLowerCase()] = sc_pool[i];
		}
		jsonData["instance"] = jsonData["prop1"];
		// Track ...
		jQuery.ajax({
			async: false,
			method: "POST",
			data: jsonData,
			dataType: "json",
			url: BMP.settings.roots.services + "/tracking/index.php5?method=omniture"
		});
	});
});

