if (document.images) { pic1= new Image(30,28); pic1.src="../tuticons/tup_grey.gif"; pic2= new Image(30,28); pic2.src="../tuticons/tdown_grey.gif"; } function displaycomment(id){ var thestyle = document.getElementById(id).style.display; if(thestyle == 'none'){ Effect.SlideDown(id,{ queue: 'end'}); } } function rate(type,id){ new Ajax.Request('../ajaxhelper/ratecomment.php', { method:'get', parameters: {comment: id, type: type}, onSuccess: function(transport){ var response = transport.responseText || "no response text"; var mySplitResult = response.split("."); var rating = ""; if(mySplitResult[0] == 'already') { alert('You\'ve already rated this comment.'); }else if(mySplitResult[0] == 'own'){ alert('You cannot rate your own comment.'); }else if(mySplitResult[0] == 'error'){ alert('An unexpected error occurred. Please refresh your browser and try again.'); }else if(mySplitResult[0] == 'much'){ alert('You can only rate '+ mySplitResult[1] +' comments every '+ mySplitResult[2] +' minutes'); }else if(mySplitResult[0] == 'success'){ if( mySplitResult[1]< 0) rating = ' ' + mySplitResult[1].replace(/\-/, "- ") + ''; else if (mySplitResult[1]> 0) rating = ' + ' + mySplitResult[1] + ''; else rating = '0'; document.getElementById(id).innerHTML = ' '; Element.setOpacity(id + 'r', 0.0); document.getElementById(id + 'r').innerHTML = rating; Effect.Appear(id + 'r'); }else alert('Something went wrong. Please refresh your browser.'); }, onFailure: function(){ alert('Something went wrong. Please refresh your browser.') } }); } function reply(id){ document.getElementById(id).innerHTML = '
Name
Comment
| Cancel
'; reload('cap1',1); } function cancelreply(id){ document.getElementById(id).innerHTML = 'Reply to Comment | Report'; } function slidedown(id){ var newvar = id.slice(0, -1) + 'b'; Effect.SlideDown(id,{ queue: 'end'}); Effect.SlideDown(newvar,{ queue: 'end'}); } function addcomment(id,fid) { new Ajax.Request('../ajaxhelper/addcomment.php?id=' + id, { method: 'post', parameters: $(fid).serialize(), onSuccess: function(transport) { var error = transport.responseText; if(error == 'again') alert('An unexpected error occurred. Please refresh your browser and try again.'); else if(error == 'error1') alert('Please slow down. You can only submit 20 comments every 2 hour(s).'); else if(error == 'error2') alert('Your ability to submit comments has been disabled by the administrator.'); else if(error == 'error3') alert('This IP address has been banned from commenting. We apologize for the inconvenience.'); else if(error == 'error4'){ alert('You have entered the image key incorrectly. Please try again.'); if( document.getElementById('cap2') != null ) reload('cap1',1); else reload('cap1'); } else if(error == 'error5') alert('Please only enter alphanumeric characters (letters and numbers) for your name.'); else if(error == 'error6') alert('Please check your comment. It must be at least 10 characters in length and no more than 1500.'); else if(error == 'error7') alert('Please check the name you entered. It must be at least 4 characters in length and no more than 20.'); else if(error == 'repost') alert('This exact comment has already been posted for this tutorial.'); else if(id == 0) { window.location = "?1714214995#new"; }else{ var response = transport.responseText.split("*$*@*"); Element.setOpacity(id, 0.0); document.getElementById(id).style.marginLeft = ''; document.getElementById(id).innerHTML = '
You said...
'+ response[2] +'
'; Effect.Appear(id); }//end of else } , onFailure: function(){ alert('Something went wrong. Please refresh your browser.') } } ); } function reload(img,optional){ var rand = (new Date()).getTime(); document.getElementById(img).src = document.getElementById(img).src + '?' + rand; if(optional == 1) document.getElementById('cap2').src = document.getElementById(img).src; } function newcomment(id){ Effect.SlideDown(id + 'a'); } function report(id){ new Ajax.Request('../ajaxhelper/reportcomment.php', { method:'get', parameters: {comment: id}, onSuccess: function(transport){ if(transport.responseText == 'error1') { alert('Invalid comment.'); }else if(transport.responseText == 'already'){ alert('You have already reported this comment.'); }else if(transport.responseText == 'good'){ alert('Thank you.'); } }, onFailure: function(){ alert('Something went wrong. Please refresh your browser.') } }); } function getCookie( check_name ) { // first we'll split this cookie up into name/value pairs // note: document.cookie only returns name=value, not the other components var a_all_cookies = document.cookie.split( ';' ); var a_temp_cookie = ''; var cookie_name = ''; var cookie_value = ''; var b_cookie_found = false; // set boolean t/f default f for ( i = 0; i < a_all_cookies.length; i++ ) { // now we'll split apart each name=value pair a_temp_cookie = a_all_cookies[i].split( '=' ); // and trim left/right whitespace while we're at it cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, ''); //cookie_name = cookie_name.replace(/\+/," "); // if the extracted name matches passed check_name if ( cookie_name == check_name && alphaNumericCheck(a_temp_cookie[1])) { b_cookie_found = true; // we need to handle case where cookie has no value but exists (no = sign, that is): if ( a_temp_cookie.length > 1 ) { cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') ); } // note that in cases where cookie is initialized but no value, null is returned return cookie_value; break; } a_temp_cookie = null; cookie_name = ''; return ""; } if ( !b_cookie_found ) { return null; } } function alphaNumericCheck(word){ var regex=/^[0-9A-Za-z +]+$/; if(regex.test(word)) return true; else return false; } function ratetutorial(type,id){ new Ajax.Request('../ajaxhelper/ratetutorial.php', { method:'get', parameters: {tutorial: id, type: type}, onSuccess: function(transport){ var response = transport.responseText || "no response text"; var mySplitResult = response.split("."); var rating = ""; if(mySplitResult[0] == 'already') { alert('You\'ve already rated this tutorial.'); }else if(mySplitResult[0] == 'own'){ alert('You cannot rate your own tutorial.'); }else if(mySplitResult[0] == 'error'){ alert('An unexpected error occurred. Please refresh your browser and try again.'); }else if(mySplitResult[0] == 'much'){ alert('You can only rate '+ mySplitResult[1] +' tutorials every '+ mySplitResult[2] +' minutes'); }else if(mySplitResult[0] == 'much2'){ alert('Please login to rate more tutorials.'); }else if(mySplitResult[0] == 'success'){ if( mySplitResult[1]< 0) rating = ' ' + mySplitResult[1].replace(/\-/, "- ") + ''; else if (mySplitResult[1]> 0) rating = ' + ' + mySplitResult[1] + ''; else rating = '   0'; document.getElementById('tutbutton').innerHTML = ' '; Element.setOpacity('tutrating', 0.0); document.getElementById('tutrating').innerHTML = rating; Effect.Appear('tutrating'); }else alert('Something went wrong. Please refresh your browser.'); }, onFailure: function(){ alert('Something went wrong. Please refresh your browser.') } }); } function updatestats(id) { new Ajax.Request('../ajaxhelper/tutorialstats.php', { method:'get', parameters: {tutorial: id}, onSuccess: function(transport){ var response = transport.responseText || "no"; var mySplitResult = response.split("."); if(mySplitResult.length == 2) { document.getElementById("views").innerHTML = mySplitResult[0]; //easy one var rating = parseInt(mySplitResult[1]) if(rating < 0) { document.getElementById("rating1").innerHTML = '- ' + Math.abs(rating) + ''; document.getElementById("tutrating").innerHTML = '- ' + Math.abs(rating) + ''; } else if(rating > 0) { document.getElementById("rating1").innerHTML = '+ ' + Math.abs(rating) + ''; document.getElementById("tutrating").innerHTML = '+ ' + Math.abs(rating) + '' } else //rating = 0 { document.getElementById("rating1").innerHTML = 'None'; document.getElementById("tutrating").innerHTML = '0'; } //this is the "big" one } }, onFailure: function(){ alert('Something went wrong. Please refresh your browser.') } }); } /*********************************************** * Fixed ToolTip script- © Dynamic Drive (www.dynamicdrive.com) * This notice MUST stay intact for legal use * Visit http://www.dynamicdrive.com/ for full source code ***********************************************/ var tipwidth='150px' //default tooltip width var tipbgcolor='lightyellow' //tooltip bgcolor var disappeardelay=2000 //tooltip disappear speed onMouseout (in miliseconds) var vertical_offset="0px" //horizontal offset of tooltip from anchor link var horizontal_offset="-3px" //horizontal offset of tooltip from anchor link /////No further editting needed var ie4=document.all var ns6=document.getElementById&&!document.all if (ie4||ns6) document.write('') function getposOffset(what, offsettype){ var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop; var parentEl=what.offsetParent; while (parentEl!=null){ totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop; parentEl=parentEl.offsetParent; } return totaloffset; } function showhide(obj, e, visible, hidden, tipwidth){ if (ie4||ns6) dropmenuobj.style.left=dropmenuobj.style.top=-500 if (tipwidth!=""){ dropmenuobj.widthobj=dropmenuobj.style dropmenuobj.widthobj.width=tipwidth } if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover") obj.visibility=visible else if (e.type=="click") obj.visibility=hidden } function iecompattest(){ return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body } function clearbrowseredge(obj, whichedge){ var edgeoffset=(whichedge=="rightedge")? parseInt(horizontal_offset)*-1 : parseInt(vertical_offset)*-1 if (whichedge=="rightedge"){ var windowedge=ie4 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15 dropmenuobj.contentmeasure=dropmenuobj.offsetWidth if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure) edgeoffset=dropmenuobj.contentmeasure-obj.offsetWidth } else{ var windowedge=ie4 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18 dropmenuobj.contentmeasure=dropmenuobj.offsetHeight if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure) edgeoffset=dropmenuobj.contentmeasure+obj.offsetHeight } return edgeoffset } function fixedtooltip(menucontents, obj, e, tipwidth){ if (window.event) event.cancelBubble=true else if (e.stopPropagation) e.stopPropagation() clearhidetip() dropmenuobj=document.getElementById? document.getElementById("fixedtipdiv") : fixedtipdiv dropmenuobj.innerHTML=menucontents if (ie4||ns6){ showhide(dropmenuobj.style, e, "visible", "hidden", tipwidth) dropmenuobj.x=getposOffset(obj, "left") dropmenuobj.y=getposOffset(obj, "top") dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+"px" dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+"px" } delayhidetip(); } function hidetip(e){ if (typeof dropmenuobj!="undefined"){ if (ie4||ns6) dropmenuobj.style.visibility="hidden" } } function delayhidetip(){ if (ie4||ns6) delayhide=setTimeout("hidetip()",disappeardelay) } function clearhidetip(){ if (typeof delayhide!="undefined") clearTimeout(delayhide) }