addEvent(window, 'load', pdfLinks, true);
addEvent(window, 'load', smartQuote, true);
addEvent(window, 'load', stripe, true);
addEvent(window, 'load', init, false);

function init() {
    var formInputs = document.getElementsByTagName('input');
    for (var i = 0; i < formInputs.length; i++) {
        var theInput = formInputs[i];
        
        if (theInput.type == 'text' && theInput.className.match(/\bcleardefault\b/)) {  
            /* Add event handlers */          
            addEvent(theInput, 'focus', clearDefaultText, false);
            addEvent(theInput, 'blur', replaceDefaultText, false);
            
            /* Save the current value */
            if (theInput.value != '') {
                theInput.defaultText = theInput.value;
            }
        }
    }
}

function clearDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) return;
    
    if (target.value == target.defaultText) {
        target.value = '';
    }
}

function replaceDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) return;
    
    if (target.value == '' && target.defaultText) {
        target.value = target.defaultText;
    }
}

function clearDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) return;
    
    if (target.value == target.defaultText) {
        target.value = '';
    }
}

function replaceDefaultText(e) {
    var target = window.event ? window.event.srcElement : e ? e.target : null;
    if (!target) return;
    
    if (target.value == '' && target.defaultText) {
        target.value = target.defaultText;
    }
}

function pdfLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "pdf")
     anchor.target = "_blank";
 }
}

var qChars = new Array();
qChars['en'] = new Array('&#8220;', '&#8221;', '&#8216;', '&#8217;');

var defaultLang = 'en';


function smartQuote() {
  var q = document.getElementsByTagName('q');
  var qLang = new Array(); // The language of each quote
  var qParentLang = new Array(); // Parent quote language
  var qLvl = new Array(); // Alternates between 0 and 1, depending on nesting level
  var qParentLvl = new Array();
  for (var i = 0; i < q.length; i++) { // Iterate through all quotes
    // Assign language to attribute value if exists (and quotes supported), otherwise parent language, otherwise default
    var lang = q[i].lang;
    qLang[i] = (lang && qChars[lang]) ? lang
            : (qParentLang[i]) ? qParentLang[i]
            : defaultLang;
    qLvl[i] = ((qParentLvl[i] == 0) && (qParentLang[i] == qLang[i])) ? 1 : 0;
    var innerQs = q[i].getElementsByTagName('q');
    for (var j = 0; j < innerQs.length; j++) { // Iterate through nested quotes
      qParentLang[i + j + 1] = qLang[i]; // Set parent language
      qParentLvl[i + j + 1] = qLvl[i]; // Set parent level
    }
  }
  for (var i = 0; i < q.length; i++) { // Apply all quotes depending on language and level
    var chars = qChars[qLang[i]];
    q[i].innerHTML = (qLvl[i] == 0) ? chars[0] + q[i].innerHTML + chars[1] : chars[2] + q[i].innerHTML + chars[3];
  }
}

function stripe() {
	var tables = document.getElementsByTagName("table");	

	for(var x=0;x!=tables.length;x++){
		var table = tables[x];
		if (! table) { return; }
		
		var tbodies = table.getElementsByTagName("tbody");
		
		for (var h = 0; h < tbodies.length; h++) {
			var even = true;
			var trs = tbodies[h].getElementsByTagName("tr");
			
			for (var i = 0; i < trs.length; i++) {
				
				
				if(even)
					trs[i].className += " even";
				
				even = !even;
			}
		}
	}
}

function addEvent(element, eventType, lamdaFunction, useCapture) {
    if (element.addEventListener) {
        element.addEventListener(eventType, lamdaFunction, useCapture);
        return true;
    } else if (element.attachEvent) {
        var r = element.attachEvent('on' + eventType, lamdaFunction);
        return r;
    } else {
        return false;
    }
}
