/*
This is a heavily customised version on jParse v0.3.3. 
This script parses the testimonials XML file, then selects one testimonial
at random for display on the page
To see the unpacked version open up jquery.jParse_And_Randomise.js
*/

(function($){$.fn.extend({jParse:function(options){var defaults={ajaxOpts:{dataType:($.browser.msie)?"text":"xml",contentType:'text/xml'},parentElement:'item',elementTag:['title','link','description'],output:'<div><h2><a href="jpet01">jpet00</a></h2><p>jpet02</p></div>'};settings=$.extend(true,defaults,options);if(settings.precallback!==undefined){settings.precallback();}
var selected=$(this);var colon=/\:/;settings.ajaxOpts.success=function(data){var xml;if(typeof data=="string"){xml=new ActiveXObject("Microsoft.XMLDOM");xml.async=false;xml.loadXML(data);}else{xml=data;}
var o=settings;var parentElementArray=$(xml).find(o.parentElement);var container='';var numberIncluded=0;var randomIndex=0;var randomSeed=-1;function nodeChecker(node){if(colon.test(node)===true){elemTagName='[nodeName='+node+']';}else{elemTagName=node;}}
function processElementValue(elementValue,elementParent){if(o.elementTag[n].elem===undefined){nodeChecker(elementValue);elemTagValue=$(elementParent).find(elemTagName).text();elemTagValue=elemTagValue.replace(/^\[CDATA\[/,'').replace(/\]\]$/,'');}else{nodeChecker(elementValue);if(o.elementTag[n].attr===undefined){if(o.elementTag[n].select!==undefined){var arrayElements=$(elementParent).find(elemTagName);elemTagValue=$(arrayElements[o.elementTag[n].select]).text();}else if(o.elementTag[n].select===undefined){elemTagValue=$(elementParent).find(elemTagName).text();}}else{elemTagValue=$(elementParent).find(elemTagName).attr(o.elementTag[n].attr);}
if(o.elementTag[n].include!==undefined){var includer=new RegExp(o.elementTag[n].include);if(includer.test(elemTagValue)===true){includeFound=true;}else{includeFound=false;}}
if(o.elementTag[n].format!==undefined){elemTagValue=o.elementTag[n].format(elemTagValue);}
if(o.elementTag[n].dateFormat!==undefined){elemTagValue=date(o.elementTag[n].dateFormat,elemTagValue);}}}
if(o.count!==undefined){jQuery(o.count).append(parentElementArray.length);}
for(var i=0;i<parentElementArray.length;i++){var includeFound=false;for(var n=0;n<o.elementTag.length;n++){if(o.elementTag[n].constructor==String){processElementValue(o.elementTag[n],parentElementArray[i]);}else if(o.elementTag[n].constructor==Object){processElementValue(o.elementTag[n].elem,parentElementArray[i]);}}
if(includeFound==true){randomIndex++;}}
var randomnumber=Math.floor(Math.random()*(randomIndex))
for(var i=0;i<parentElementArray.length;i++){if(numberIncluded>=settings.limit){$(selected).append(container);if(settings.callback!==undefined){settings.callback();}
return false;}
var outputVar=o.output;var includeFound=false;for(var n=0;n<o.elementTag.length;n++){var position;if(n<10){position=new RegExp('jpet0'+[n],'g');}else{position=new RegExp('jpet'+[n],'g');}
if(o.elementTag[n].constructor==String){processElementValue(o.elementTag[n],parentElementArray[i]);}else if(o.elementTag[n].constructor==Object){processElementValue(o.elementTag[n].elem,parentElementArray[i]);}
outputVar=outputVar.replace(position,elemTagValue);outputVar=outputVar.replace('jpetIndex',i);}
if(includeFound===true){randomSeed++;if(randomSeed==randomnumber){container+=outputVar;numberIncluded++;}}}
$(selected).append(container);if(settings.callback!==undefined){settings.callback();}};return this.each(function(){$.ajax(settings.ajaxOpts);});}});})(jQuery);
