// =============
// = Slick Box =
// =============
jQuery.noConflict();
jQuery(function() {
// hides the slickbox as soon as the DOM is ready
// (a little sooner than page load)
jQuery('#slickbox').hide();
// shows the slickbox on clicking the noted link  
jQuery('a#slick-down').click(function() {
 jQuery('#slickbox').slideDown('slow');
 return false;
});
// hides the slickbox on clicking the noted link  
jQuery('a#slick-up').click(function() {
 jQuery('#slickbox').slideUp('slow');
 return false;
}); 
});


// ====================
// = Expanding Videos =
// ====================
	
//------------------- for clearing and replacing text in form input fields and textareas -------------------//
function clearText(thefield) {
  if (thefield.defaultValue==thefield.value) { thefield.value = "" }
} 
function replaceText(thefield) {
  if (thefield.value=="") { thefield.value = thefield.defaultValue }
}


// ===================
// = Form Validation =
// ===================
function formCheck(formobj){
    // Enter name of mandatory fields
    var fieldRequired = Array("contact_email", "contact_first_name");
    // Enter field description to appear in the dialog box
    var fieldDescription = Array("Please enter your Email Address", "Please enter your Name");
    // dialog message
	
    var alertMsg = "Please complete the following fields:\n";
    
    var l_Msg = alertMsg.length;
    
    for (var i = 0; i < fieldRequired.length; i++){
        var obj = formobj.elements[fieldRequired[i]];
        if (obj){
            switch(obj.type){
            case "select-one":
                if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
                    alertMsg += " - " + fieldDescription[i] + "\n";
                }
                break;
            case "select-multiple":
                if (obj.selectedIndex == -1){
                    alertMsg += " - " + fieldDescription[i] + "\n";
                }
                break;
            case "text":
            case "textarea":
                if (obj.value == "" || obj.value == null){
                    alertMsg += " - " + fieldDescription[i] + "\n";
                }
                break;
			 case "checkbox":
                if (obj.checked == false || obj.checked == null){
                    alertMsg += " - " + fieldDescription[i] + "\n";
                }
                break;	
			case "radio":
                if (obj.checked == 0 || obj.checked == null){
                    alertMsg += " - " + fieldDescription[i] + "\n";
                }
                break;		
            default:
            }
            if (obj.type == undefined){
                var blnchecked = false;
                for (var j = 0; j < obj.length; j++){
                    if (obj[j].checked){
                        blnchecked = true;
                    }
                }
                if (!blnchecked){
                    alertMsg += " - " + fieldDescription[i] + "\n";
                }
            }
        }
    }

    if (alertMsg.length == l_Msg){
        return true;
    }else{
        alert(alertMsg);
        return false;
    }
}


// =================
// = JCarouselLite =
// =================
(function($) { // Compliant with jquery.noConflict()
$.fn.jCarouselLite = function(o) {
o = $.extend({
btnPrev: null,
btnNext: null,
btnGo: null,
mouseWheel: false,
auto: null,
hoverPause: false,
speed: 200,
easing: null,
vertical: false,
circular: true,
visible: 3,
start: 0,
scroll: 1,
beforeStart: null,
afterEnd: null
}, o || {});
return this.each(function() { // Returns the element collection. Chainable.
var running = false, animCss=o.vertical?"top":"left", sizeCss=o.vertical?"height":"width";
var div = $(this), ul = $("ul", div), tLi = $("li", ul), tl = tLi.size(), v = o.visible;
if(o.circular) {
ul.prepend(tLi.slice(tl-v+1).clone())
.append(tLi.slice(0,o.scroll).clone());
o.start += v-1;
}
var li = $("li", ul), itemLength = li.size(), curr = o.start;
div.css("visibility", "visible");
li.css({overflow: "hidden", float: o.vertical ? "none" : "left"});
ul.css({margin: "0", padding: "0", position: "relative", "list-style-type": "none", "z-index": "1"});
div.css({overflow: "hidden", position: "relative", "z-index": "2", left: "0px"});
var liSize = o.vertical ? height(li) : width(li); // Full li size(incl margin)-Used for animation
var ulSize = liSize * itemLength; // size of full ul(total length, not just for the visible items)
var divSize = liSize * v; // size of entire div(total length for just the visible items)
li.css({width: li.width(), height: li.height()});
ul.css(sizeCss, ulSize+"px").css(animCss, -(curr*liSize));
div.css(sizeCss, divSize+"px"); // Width of the DIV. length of visible images
if(o.btnPrev) {
$(o.btnPrev).click(function() {
return go(curr-o.scroll);
});
if(o.hoverPause) {
$(o.btnPrev).hover(function(){stopAuto();}, function(){startAuto();});
}
}
if(o.btnNext) {
$(o.btnNext).click(function() {
return go(curr+o.scroll);
});
if(o.hoverPause) {
$(o.btnNext).hover(function(){stopAuto();}, function(){startAuto();});
}
}
if(o.btnGo)
$.each(o.btnGo, function(i, val) {
$(val).click(function() {
return go(o.circular ? o.visible+i : i);
});
});
if(o.mouseWheel && div.mousewheel)
div.mousewheel(function(e, d) {
return d>0 ? go(curr-o.scroll) : go(curr+o.scroll);
});
var autoInterval;
function startAuto() {
stopAuto();
autoInterval = setInterval(function() {
go(curr+o.scroll);
}, o.auto+o.speed);
};
function stopAuto() {
clearInterval(autoInterval);
};
if(o.auto) {
if(o.hoverPause) {
div.hover(function(){stopAuto();}, function(){startAuto();});
}
startAuto();
};
function vis() {
return li.slice(curr).slice(0,v);
};
function go(to) {
if(!running) {
if(o.beforeStart)
o.beforeStart.call(this, vis());
if(o.circular) { // If circular we are in first or last, then goto the other end
if(to<0) { // If before range, then go around
ul.css(animCss, -( (curr + tl) * liSize)+"px");
curr = to + tl;
} else if(to>itemLength-v) { // If beyond range, then come around
ul.css(animCss, -( (curr - tl) * liSize ) + "px" );
curr = to - tl;
} else curr = to;
} else { // If non-circular and to points to first or last, we just return.
if(to<0 || to>itemLength-v) return;
else curr = to;
} // If neither overrides it, the curr will still be "to" and we can proceed.
running = true;
ul.animate(
animCss == "left" ? { left: -(curr*liSize) } : { top: -(curr*liSize) } , o.speed, o.easing,
function() {
if(o.afterEnd)
o.afterEnd.call(this, vis());
running = false;
}
);
// Disable buttons when the carousel reaches the last/first, and enable when not
if(!o.circular) {
$(o.btnPrev + "," + o.btnNext).removeClass("disabled");
$( (curr-o.scroll<0 && o.btnPrev)
||
(curr+o.scroll > itemLength-v && o.btnNext)
||
[]
).addClass("disabled");
}
}
return false;
};
});
};
function css(el, prop) {
return parseInt($.css(el[0], prop)) || 0;
};
function width(el) {
return el[0].offsetWidth + css(el, 'marginLeft') + css(el, 'marginRight');
};
function height(el) {
return el[0].offsetHeight + css(el, 'marginTop') + css(el, 'marginBottom');
};
})(jQuery);
