
String.prototype.replaceP = function () {
    var reTag = /<p>/gi;
    return this.replace(reTag, "&lt;p&gt;");
};
String.prototype.stripHTML = function () {
    var reTag = /<(?:.|\s)*?>/g;
    return this.replace(reTag, "");
};
Array.prototype.clean = function(deleteValue) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] == deleteValue) {
            this.splice(i, 1);
            i--;
        }
    }
    return this;
};

function isEmail(string) {
    if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
        return true;
    else
        return false;
}
// apply inline-box only for mozilla
if( jQuery.browser.mozilla ) {
    // do when DOM is ready
    $( function() {
        // search form, hide it, search labels to modify, filter classes nocmx and error
        $( 'form.reframeForm' ).hide().find( 'p>label:not(.nocmx):not(.error)' ).each( function() {
            var $this = $(this);
            var labelContent = $this.html();
            var labelWidth = document.defaultView.getComputedStyle( this, '' ).getPropertyValue( 'width' );
            // create block element with width of label
            var labelSpan = $("<span>")
            .css("display", "block")
            .width(labelWidth)
            .html(labelContent);
            // change display to mozilla specific inline-box
            $this.css("display", "-moz-inline-box")
            // remove children
            .empty()
            // add span element
            .append(labelSpan);
        // show form again
        }).end().show();
    });
};



function checkCartStatus()
{
    var _html = "";
    var c = $.cookieJar('reframeCart');
    var cartid = c.get('cartId');
    var hmac = c.get('hmac');
    cartDao.howManyInCart(cartid, hmac, function(_reframeCart){
        if(_reframeCart != undefined && _reframeCart.count != -1) {
            _html = "<li><a href=\"../cart/index?Id="+c.get('cartId')+"&h="+escape(c.get('hmac')).replace(/\//g,'%2F').replace(/\+/g,'%2B')+"\">View Cart ("+_reframeCart.count+")</a></li>";
        }
        else{
            _html = "&nbsp;";
        }
        $("#cartnav").html(_html);
    });
}

//FILTERS
function getFilterCrumbs(cls, lbl, _div)
{
    var _filters = "";
    var _filterCount = 0;
    $.each( $("."+cls+" > li"), function(index, item)
    {
        if($(this).html().indexOf("checked")>-1)
        {
            if(_filterCount>0)
                _filters += " + ";
            else
                _filters += lbl+": ";

            _filters += $(this).find("label").html();

            _filterCount++;
        }
    });
    if(_filters.length>0)
        $("#"+_div).html("").html(_filters).show();
}
    
    


/*
 * *********************
 * DOCUMENT READY
 * *********************
 * 
 */
$(document).ready(function() {
    /**/
    $(".expando-trigger").click(function(){
        
        if($(this).hasClass("expando-open"))
        {
            $(this).removeClass("expando-open");
            $(this).next().slideUp();//.removeClass("expando-open");
        }
        else
        {
            $(this).addClass("expando-open");
            //$(this).addClass("expando-open");
            $(this).next().slideDown();//.addClass("expando-open");
        }
    });
    
    $(".expando-trigger").click(function(){
        if($(this).next().is(":hidden"))
        {
            $(this).next().slideDown();
        }
    });
    
    function searchBox()
    {
        $("#search").focus(function(){
            $(this).val("");
        }).blur(function(){
            if($(this).val().length==0){
                $(this).val("Search Site");
            }
            //validate 
            /*  */      
            var s_length; 
            s_length = $("#search").val().length; 
            $("#sWarn").empty(); 

            if (s_length < 4) 
                $("#sWarn").append(""); 
        });
    }
    searchBox();            
   

    jQuery.fn.extend({
        /**
         * Returns get parameters.
         *
         * If the desired param does not exist, null will be returned
         *
         * To get the document params:
         * @example value = $(document).getUrlParam("paramName");
         * 
         * To get the params of a html-attribut (uses src attribute)
         * @example value = $('#imgLink').getUrlParam("paramName");
         */ 
        getUrlParam: function(strParamName){
            strParamName = escape(unescape(strParamName));
	  
            var returnVal = new Array();
            var qString = null;
	  
            if ($(this).attr("nodeName")=="#document") {
                //document-handler
		
                if (window.location.search.search(strParamName) > -1 ){
			
                    qString = window.location.search.substr(1,window.location.search.length).split("&");
                }
			
            } else if ($(this).attr("src")!="undefined") {
	  	
                var strHref = $(this).attr("src")
                if ( strHref.indexOf("?") > -1 ){
                    var strQueryString = strHref.substr(strHref.indexOf("?")+1);
                    qString = strQueryString.split("&");
                }
            } else if ($(this).attr("href")!="undefined") {
	  	
                var strHref = $(this).attr("href")
                if ( strHref.indexOf("?") > -1 ){
                    var strQueryString = strHref.substr(strHref.indexOf("?")+1);
                    qString = strQueryString.split("&");
                }
            } else {
                return null;
            }
	  	
	  
            if (qString==null) return null;
	  
	  
            for (var i=0;i<qString.length; i++){
                if (escape(unescape(qString[i].split("=")[0])) == strParamName){
                    returnVal.push(qString[i].split("=")[1]);
                }
			
            }
	  
	  
            if (returnVal.length==0) return null;
            else if (returnVal.length==1) return returnVal[0];
            else return returnVal;
        }
    });


});

