// JScript File

var CROWCODER;
if(!CROWCODER) CROWCODER = {};

CROWCODER.JsUtils = {};

CROWCODER.JsUtils.getNavBar = function()
{
    var elem = document.getElementById("nav");
    
    var ln_home = document.createElement("a");
    ln_home.href = "/default.htm";
    ln_home.className = "navbar";
    var lntxt_home = document.createTextNode("[Home] ");
    ln_home.appendChild(lntxt_home);
    
    var ln_about = document.createElement("a");
    ln_about.href = "/AboutUs.htm";
    ln_about.className = "navbar";
    var lntxt_about = document.createTextNode("[About Us] ");
    ln_about.appendChild(lntxt_about);
    
    var ln_contact = document.createElement("a");
    ln_contact.href = "mailto:info@yardsaleseason.com";
    ln_contact.className = "navbar";
    var lntxt_contact = document.createTextNode("[Contact Us] ");
    ln_contact.appendChild(lntxt_contact);
    
    var ln_search = document.createElement("a");
    ln_search.href = "/members/Search.htm";
    ln_search.className = "navbar";
    var ln_search_img = document.createElement("img");
    ln_search_img.className = "imgmenu";
    ln_search_img.src = "/images/search.gif";
    ln_search_img.height = 20;
    ln_search_img.width = 17;
    var lntxt_search = document.createTextNode("[Search] ");
    ln_search.appendChild(ln_search_img);
    ln_search.appendChild(lntxt_search);
    
    var ln_yardsale = document.createElement("a");
    ln_yardsale.href = "/members/Yardsale.htm";
    ln_yardsale.className = "navbar";
    var ln_ys_img = document.createElement("img");
    ln_ys_img.className = "imgmenu";
    ln_ys_img.src = "/images/yardsale.gif";
    ln_ys_img.height = 20;
    ln_ys_img.width = 17;
    var lntxt_yardsale = document.createTextNode("[Post Yard Sale] ");
    ln_yardsale.appendChild(ln_ys_img);
    ln_yardsale.appendChild(lntxt_yardsale);
    
    var ln_alerts = document.createElement("a");
    ln_alerts.href = "/members/Alert.htm";
    ln_alerts.className = "navbar";
    var ln_alerts_img = document.createElement("img");
    ln_alerts_img.className = "imgmenu";
    ln_alerts_img.src = "/images/alert.gif";
    ln_alerts_img.height = 20;
    ln_alerts_img.width = 22;
    var lntxt_alerts = document.createTextNode("[Alerts] ");
    ln_alerts.appendChild(ln_alerts_img);
    ln_alerts.appendChild(lntxt_alerts);
    
    /*
    var ln_tou = document.createElement("a");
    ln_tou.href = "/Terms.htm";
    ln_tou.className = "navbar";
    var lntxt_tou = document.createTextNode("[Terms of Use] ");
    ln_tou.appendChild(lntxt_tou);
    
    var ln_privacy = document.createElement("a");
    ln_privacy.href = "/Privacy.htm";
    ln_privacy.className = "navbar";
    var lntxt_privacy = document.createTextNode("[Privacy Policy]");
    ln_privacy.appendChild(lntxt_privacy);
    */
    elem.appendChild(ln_home);
    elem.appendChild(ln_search);
    elem.appendChild(ln_yardsale);
    elem.appendChild(ln_alerts);
    elem.appendChild(ln_about);
    elem.appendChild(ln_contact);    
    //elem.appendChild(ln_tou);
    //elem.appendChild(ln_privacy);
}

/***
 * 
 * @param {HTML Element} p_elem the document element
 * reference to drop the list of categories into. 
 */
CROWCODER.JsUtils.getCategories = function(p_elem)
{
    var xhr = new CROWCODER.ajax.YuiConxn();
    xhr.postdata = "?method=getAllCategories";
	xhr.sUrl = "../services/services.aspx";                 
    xhr.callback.success = buildCats;        
    xhr.callback.failure = showFail;
    xhr.makeCall();
    
    function buildCats(o)
    {
        var lst = document.createElement("UL");
        lst.id = "catlist";
        var arr = eval("(" + o.responseText + ")");
        
        for(var i = 0; i < arr.categories.length; i++)
        { 
            var li = document.createElement("LI");        
            var cbx = document.createElement("INPUT");
            cbx.type = "checkbox";
            cbx.id = arr.categories[i].cat_id;
            
            //cbx.dispVal = arr.categories[i].cat_nam;
            li.appendChild(cbx);
            li.appendChild(document.createTextNode(arr.categories[i].cat_nam));
            lst.appendChild(li);
        }        
        p_elem.appendChild(lst);
    }
    function showFail(o)
    {
        throw new Error("Failed to Return Category List");
    }
}

CROWCODER.JsUtils.loadXMLDoc = function(dname)
{
    var xmlDoc;
    // code for IE
    if (window.ActiveXObject)
    {
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    }
    // code for Mozilla, Firefox, Opera, etc.
    else if (document.implementation && document.implementation.createDocument)
    {
    xmlDoc=document.implementation.createDocument("","",null);
    }
    else
    {
    alert('Your browser cannot handle this script');
    }
    xmlDoc.async=false;
    xmlDoc.load(dname);
    return(xmlDoc);
}

CROWCODER.JsUtils.toggle = function(obj) 
    {
        var el = document.getElementById(obj);
        if ( el.style.display != 'none' ) 
        {
	        el.style.display = 'none';
        }
        else 
        {
	        el.style.display = '';
        }
    }

CROWCODER.JsUtils.getQueryStr = function(){
    var args = {};
    var query = location.search.substring(1);
    var pairs = query.split("&");
    
    for(var i = 0; i < pairs.length; i++)
    {
        var pos = pairs[i].indexOf('=');
        if (pos == -1) continue;
        var argname = pairs[i].substring(0, pos);
        var value = pairs[i].substring(pos+1);
        value = decodeURIComponent(value);
        args[argname] = value;        
    }
    return args;
    
}

CROWCODER.JsUtils.getElementsByClass = function(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

CROWCODER.JsUtils.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 document.cookie.substring( len, end );
}

CROWCODER.JsUtils.setCookie = function (p_value, p_max_age) 
{
	document.cookie = usr_name+'=' + p_value +
		';max-age='+ 86400 * p_max_age + 
		';path=/';
}

CROWCODER.JsUtils.deleteCookie = function ( name, path, domain ) {
	if ( getCookie( name ) ) document.cookie = name + '=' +
			( ( path ) ? ';path=' + path : '') +
			( ( domain ) ? ';domain=' + domain : '' ) +
			';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}

CROWCODER.JsUtils.$ = function () {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}

/*
 * @summary: returns an array of ids for each checked checkbox
 * in the list's collection of listitems
 * @param p_arr an array of checkboxes
 */
CROWCODER.JsUtils.getCheckedBoxes = function(p_arr)
{
    var result = [];
    for(var i = 0; i < p_arr.length; i++)
    {
        if(p_arr[i].checked)
        {
            result.push(p_arr[i].id)
        }            
    }
    return result;
}

/***
 * @method Returns an array of category names
 * @param {Object} p_arr an array of checked category inputs
 */
CROWCODER.JsUtils.getCheckedNames = function(p_arr)
{
    var result = [];
    for(var i = 0; i < p_arr.length; i++)
    {
        if(p_arr[i].checked)
        {
            result.push(" " + p_arr[i].dispVal);
        }            
    }
    return result;
}

CROWCODER.JsUtils.getCalDates = function(p_cal)
{
    var arr = p_cal.getSelectedDates();
    var str = "";
    var _day;
    var _date;
    var _month;
    var _year;
    
    for(var i = 0; i < arr.length; i++)
    {
        _day = arr[i].getUTCDay();
        switch(_day)
        {
            case 0:
               _day = "Sun";
               break;
            case 1:
                _day = "Mon";
                break;
            case 2:
                _day = "Tue";
                break;
            case 3:
                _day = "Wed";
                break;
            case 4:
                _day = "Thu";
                break;
            case 5:
                _day = "Fri";
                break;
            case 6:
                _day = "Sat";
                break;             
        }
        
        _month = arr[i].getUTCMonth();
        
        switch(_month)
        {
            case 0:
                _month = "Jan";
                break;
            case 1:
                _month = "Feb";
                break;
            case 2:
                _month = "Mar";
                break;
            case 3:
                _month = "Apr";
                break;
            case 4:
                _month = "May";
                break;
            case 5:
                _month = "Jun";
                break;
            case 6:
                _month = "Jul";
                break;
            case 7:
                _month = "Aug";
                break;
            case 8:
                _month = "Sep";
                break;
            case 9:
                _month = "Oct";
                break;
             case 10:
                _month = "Nov";
                break;
             case 11:
                _month = "Dec";
                break;               
        }
                
        _date = arr[i].getUTCDate();
        
        _year = arr[i].getUTCFullYear();
        
        str = str + _day + " " + _month + " " + _date + ", " + _year + "<br />";    
    }
    return str;
}

CROWCODER.JsUtils.getDisplayDate = function(p_date)
{
    var p_date = new Date(p_date);
    var _date;
    var _day;
    var _date;
    var _month;
    var _year;
    
    /*
    _day = p_date.getUTCDay();
    switch(_day)
    {
        case 0:
           _day = "Sun";
           break;
        case 1:
            _day = "Mon";
            break;
        case 2:
            _day = "Tue";
            break;
        case 3:
            _day = "Wed";
            break;
        case 4:
            _day = "Thu";
            break;
        case 5:
            _day = "Fri";
            break;
        case 6:
            _day = "Sat";
            break;             
    }
    */
   
    _month = p_date.getUTCMonth();
    
    /*
    switch(_month)
    {
        case 0:
            _month = "Jan";
            break;
        case 1:
            _month = "Feb";
            break;
        case 2:
            _month = "Mar";
            break;
        case 3:
            _month = "Apr";
            break;
        case 4:
            _month = "May";
            break;
        case 5:
            _month = "Jun";
            break;
        case 6:
            _month = "Jul";
            break;
        case 7:
            _month = "Aug";
            break;
        case 8:
            _month = "Sep";
            break;
        case 9:
            _month = "Oct";
            break;
         case 10:
            _month = "Nov";
            break;
         case 11:
            _month = "Dec";
            break;               
    }
      */          
        _date = p_date.getUTCDate();
        
        _year = p_date.getUTCFullYear();
        
        return (_month + 1) + "/" + _date + "/" + _year;
        
        //return _day + " " + _month + " " + _date + ", " + _year;
}

CROWCODER.JsUtils.Trim = function(p_str)
{
  p_str = p_str.replace( /^\s+/g, "" );// strip leading
  return p_str.replace( /\s+$/g, "" );// strip trailing
}

CROWCODER.JsUtils.showHelp = function(p_msg, p_hdr)
{
    mySimpleDialog = new YAHOO.widget.SimpleDialog("dlg", {
            width: "20em",
            effect:{effect:YAHOO.widget.ContainerEffect.FADE,
            duration:0.25},
            fixedcenter:true,
            modal:true,
            draggable:false });
    mySimpleDialog.setHeader(p_hdr);
    mySimpleDialog.setBody(p_msg);
    mySimpleDialog.cfg.setProperty("icon",YAHOO.widget.SimpleDialog.ICON_HELP);
   
    mySimpleDialog.render(document.body);
    mySimpleDialog.show();
}
