// dw_utils.js  version date: may 2009

addLoadEvent( setupLicensingAlert );

/* alert once when viewer clicks on link with class="nag"
  (links to view or download code requiring license)
  idea snatched from www.barelyfitz.com
*/ 
function doLicensingAlert() {
    if (!arguments.callee.stopNag) {
        arguments.callee.stopNag = true;
        alert('A license is required for all but personal use of this code.\nPlease adhere to our Terms of Use if you use dyn-web code.');
    }
}

function setupLicensingAlert() {
  if ( document.getElementsByTagName ) {
    var lnks = document.getElementsByTagName("A");
    for (var i=0; lnks[i]; i++) {
      if ( dw_hasClass( lnks[i], "nag" ) )
        dw_Event.add( lnks[i], 'click', doLicensingAlert);
    }
  }
}



function dw_addClass(el, cl) {
    el.className = ( el.className + ' ' + cl ).trim();
}

function dw_removeClass(el, cl) {
    el.className = el.className.replace(cl, " ").normalize();
}

function dw_hasClass(el, cl) {
    var re = new RegExp("\\b" + cl + "\\b", "i");
    if ( re.test( el.className ) ) {
        return true;
    }
    return false;
}

function dw_getElementsByClassName(sClass, sTag, oCont) {
    var result = [], list, i;
    var re = new RegExp("\\b" + sClass + "\\b", "i");
    oCont = oCont? oCont: document;
    if ( document.getElementsByTagName ) {
        if ( !sTag || sTag == "*" ) { // for ie5
            list = oCont.all? oCont.all: oCont.getElementsByTagName("*");
        } else {
            list = oCont.getElementsByTagName(sTag);
        }
        for (i=0; list[i]; i++) 
            if ( re.test( list[i].className ) ) result.push( list[i] );
    }
    return result;
}

// obj: link or window.location
function dw_getValueFromQueryString(name, obj) {
    obj = obj? obj: window.location; 
    if (obj.search && obj.search.indexOf(name != -1) ) {
        var pairs = obj.search.slice(1).split("&"); // name/value pairs
        var set;
        for (var i=0; pairs[i]; i++) {
            set = pairs[i].split("="); // Check each pair for match on name 
            if ( set[0] == name && set[1] ) {
                return set[1];
            }
        }
    }
    return '';
}

if (!Array.prototype.push) {  // ie5.0
	Array.prototype.push =  function() {
		for (var i=0; arguments[i]; i++) this[this.length] = arguments[i];
		return this[this.length-1]; // return last value appended
	}
};

String.prototype.normalize = function() {
	var re = /\s\s+/g;
	return this.trim().replace(re, " ");
};

String.prototype.trim = function() {
	var re = /^\s+|\s+$/g;
	return this.replace(re, "");
};


// Danny Goodman's version (DHTML def ref)
function addLoadEvent(fp) {
    var oldQueue = window.onload? window.onload: function() {};
    window.onload = function() {
        oldQueue();
        fp();
    }
}

// set target attribute to "_blank" if link has class="blank"
// using in cart for policies
function setTargetBlank() {
  var lnks;
  if ( document.getElementsByTagName ) lnks = document.getElementsByTagName("A");
  if ( lnks && lnks[0].getAttribute ) {
    for (var i=0; lnks[i]; i++) {
      if ( lnks[i].getAttribute("href") && lnks[i].className == "blank" )
        lnks[i].target = "_blank";
    }
  }
}


function getTextArea(name, rows, cols) {
    var str = '<textarea name="' + name + '" id="' + name + '" cols="' + cols + '" rows="' + rows + '"></textarea>';
    document.write(str);
}

function getTextInput(name, size) {
    var str = '<input type="text" size="' + size + '" name="' + name + '" id="' + name + '" />';
    document.write(str);
}

function getSubmitButton() {
    var str = '<input name="submit" id="submit" type="submit" value="Submit" />';
    document.write(str);
}

//  <script type="text/javascript">noSpamEmail('link text here')</script> 
function noSpamEmail(txt) {
  var address = '<a class="mail" href="' + 'ma' + 'il' + 'to:' + 'contact_01' + '&#64;' + 'dyn-web.com' + 
        ',shp_dynweb' + '&#64;' + 'yahoo.com">' + txt + '<\/a>';
  document.write(address);
}
