﻿var objField,objCountField,objCountFieldText;

// Removes leading whitespace
function LTrim( value ) {
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
}
// Removes trailing whitespace
function RTrim( value ) {
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
}
// Removes leading and trailing whitespace
function trim( value ) {
	return LTrim(RTrim(value));
}
// If the String object doesn't have a trim method add one.
if(typeof "".trim == "undefined"){
	// Trim leading and trailing spaces from a string.
	String.prototype.trim = function(str) {
		str = this != window? this : str;
		return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
	}
}
function SwapVideo(videoId)
{
    var VideoCode = "<div style='height:350px; width:425px; text-align:center;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/" + videoId +
                    "'></param><embed src='http://www.youtube.com/v/" + videoId + "' type='application/x-shockwave-flash' width='425' height='350'></embed></object></div>";
    var VideoContainer = document.getElementById("MainVideo");
    
    VideoContainer.innerHTML = VideoCode;
}
function inputCounter(field, countfield, maxlimit, action) {
    
	if (!objField) objField = document.getElementById(field);
	if (!objCountField) objCountField = document.getElementById(countfield);
	if (!objCountFieldText) objCountFieldText = document.getElementById(countfield).childNodes[0]; 

	if (objField.value.length > maxlimit){ 
            objCountFieldText.nodeValue = "Text box is full";
            objField.value = objField.value.substring(0,maxlimit);
	    }
	    else
	    {
	        objCountFieldText.nodeValue = maxlimit + " chars max";
	    }
}
function setPos(obj){
    var rng   =   obj.createTextRange();  
        rng.moveStart("character",obj.value.length);  
        rng.moveEnd("character",0);  
        rng.select();
}
function insertAtCursor(myField, myValue) {
    if (document.selection) {
        myField.focus();
        sel = document.selection.createRange();
        sel.text = myValue;
    }
    else if (myField.selectionStart || myField.selectionStart == '0') {
        var startPos = myField.selectionStart;
        var endPos = myField.selectionEnd;
        myField.value = myField.value.substring(0, startPos)+ myValue+ myField.value.substring(endPos, myField.value.length);
    }
    else {myField.value += myValue;}
}
function stripTags(s){
	s = s.replace(/<br \/>/gi,"\r");
	s = s.replace(/<br\/>/gi,"\r");
	s = s.replace(/<br>/gi,"\r");
	s = s.replace(/<i>/gi,"");
	s = s.replace(/<\/i>/gi,"");
	s = s.replace(/<b>/gi,"");
	s = s.replace(/<\/b>/gi,"");
	s = s.replace(/<blockquote>/gi,"[quote]");
	s = s.replace(/<\/blockquote>/gi,"[/quote]");
	s = s.replace(/<p>/gi,"");
	s = s.replace(/<\/p>/gi,"");
	s = s.replace(/<a[\s]*target=\"_blank\"[\s]*rel=\"nofollow\"[\s]*href=\"[\w.\?=_\-\/:]+\">/gi,"");
	s = s.replace(/<\/a>/gi,"");
	s = s.replace(/<img[\s]*class=\"Thumb\"[\s]*src=\"([^\"]*)*\"[^>]*>/gi,"[img]$1[/img]");
    s = s.replace(/<.*\/>/gi,"");
    s = s.replace(/<.*>/gi,"");
    s = s.replace(/<\/.*>/gi,"");
    s = s.replace(/[\n]+/gi,"\r");
    while(s != s.replace(/\r[\s]*\r/gi,"\r")){
        s = s.replace(/\r[\s]*\r/gi,"\r");
    }
    return s;
}
function revertTags(s){
	s = s.replace(/\[b\]/gi,"<b>");
	s = s.replace(/\[i\]/gi,"<i>");
	s = s.replace(/\[B\]/gi,"<b>");
	s = s.replace(/\[I\]/gi,"<i>");
	s = s.replace(/\[\/b\]/gi,"</b>");
	s = s.replace(/\[\/i\]/gi,"</i>");
	s = s.replace(/\[\/B\]/gi,"</b>");
	s = s.replace(/\[\/I\]/gi,"</i>");
	s = s.replace(/\[quote\]/gi,"<blockquote>");
	s = s.replace(/\[\/quote\]/gi,"</blockquote>");
	s = s.replace(/\r/gi,"<br>");
	s = s.replace(/\[hr\]/gi,"<hr>");	
	s = s.replace(/\[img\]([^\"]*)\[\/img\]/gi,"<img class=\"Thumb\" src=\"$1\" />");
    return s;
}
function Quote(username,contentId, textBoxId){
    var objTextBox = document.getElementById(textBoxId);
    var content = document.getElementById(contentId).innerHTML;
    content = stripTags(content);
    var quote = "[quote][b]" + username + " said:[/b] " + content + "[/quote]\r";
    objTextBox.value = objTextBox.value + quote;
    objTextBox.focus(); 
}
/*************** tag suggest *******************/
function FillTag(tagContainer, tagBoxName)
{   
     var tagBox = document.getElementById(tagBoxName);
     var tag = tagContainer.innerHTML;
     // if it finds the tag
     if (tagBox.value.indexOf(tag) != -1)
     {
        tagBox.value = tagBox.value.replace(tag, '');
        tagContainer.className = "";
     }
     else 
     {
        if (tagBox.value.length > 0){tagBox.value += ' ' + tag;}
        else{tagBox.value = tag;}        
        tagContainer.className = "selected";
    }    
    Tidy(tagBox)
}
function Tidy(textBox)
{
    // replaces double spaces
    textBox.value = textBox.value.replace("  ", ' ');
    // trim leading spaces
    textBox.value = trim(textBox.value);
}
function ToggleInfo(infoObj) {
    if(document.getElementById(infoObj).style.display != "block"){
        document.getElementById(infoObj).style.display = "block";
        var mySlide = new Fx.Slide(infoObj).hide().toggle();
    }
    else{
        var mySlide = new Fx.Slide(infoObj).toggle();
    }
}
/*************** Actions *******************/
function doOwn(){	var url = 'ajax/OwnHandler.ashx';var req = new Request({url:url, onSuccess: onOwnSuccess}).send(ownPars);	}	
function doWant(){	var url = 'ajax/OwnHandler.ashx';var req = new Request({url:url, onSuccess: onWantSuccess}).send(wantPars);	}	
function doVote(){	var url = 'ajax/VoteHandler.ashx';var req = new Request({url:url, onSuccess: onVoteSuccess}).send(pars);	}	
function doFave(){	var url = 'ajax/FaveHandler.ashx';var req = new Request({url:url, onSuccess: onFaveSuccess}).send(favePars);	}	
function onWantSuccess(txt)
{
    var result = txt;
    if(result == 'invalid_params')
            lblError.innerHTML = 'invalid params';
    else if(result == 'update_err')
        lblError.innerHTML = 'voting error';
    else if(result == 'has_voted'){
        lblError.innerHTML = '';
    	var myVerticalSlide = new Fx.Slide(phWantAction, {duration: 'long'});
        myVerticalSlide.slideOut();
    }
    else{
    	var myVerticalSlide = new Fx.Slide(phWantAction, {duration: 'long'});
        myVerticalSlide.slideOut();
    }
}
function onOwnSuccess(txt)
{	
    var result = txt;	    
    if(result == 'invalid_params')
            lblError.innerHTML = 'invalid params';
    else if(result == 'update_err')
        lblError.innerHTML = 'voting error';
    else if(result == 'has_voted'){
        lblError.innerHTML = '';
    	var myVerticalSlide = new Fx.Slide(phOwnAction, {duration: 'long'});
        myVerticalSlide.slideOut();
    }
    else{
    	var myVerticalSlide = new Fx.Slide(phOwnAction, {duration: 'long'});
        myVerticalSlide.slideOut();
    }
}	
function onVoteSuccess(txt){	
    var result = txt;
    var btnCoolVote = $('btnCoolVote');
    if(result == 'invalid_params')
            lblError.innerHTML = 'invalid params';
    else if(result == 'update_err')
        lblError.innerHTML = 'voting error';
    else if(result == 'has_voted'){
        lblError.innerHTML = '';
    	var myVerticalSlide = new Fx.Slide(phVoteAction, {duration: 'long'});
        myVerticalSlide.slideOut();
    }
    else{
    	var myVerticalSlide = new Fx.Slide(phVoteAction, {duration: 'long'});
        myVerticalSlide.slideOut();
        var morph = new Fx.Morph(voteControl);
        morph.start({'font-size': '16px', 'background-color': '#ffffff', border: '3px dashed #008cbd', padding: '2px',  'color': '#d62132'});
        $(voteControl).innerHTML = result + ' Votes';
    }       
}	
function onFaveSuccess(txt)
{	
    var result = txt;	    
    if(result == 'invalid_params')
            lblError.innerHTML = 'invalid params';
    else if(result == 'update_err')
        lblError.innerHTML = 'voting error';
    else if(result == 'has_voted'){
        lblError.innerHTML = '';
    	var myVerticalSlide = new Fx.Slide(phFaveAction, {duration: 'long'});
        myVerticalSlide.slideOut();
    }
    else{
    	var myVerticalSlide = new Fx.Slide(phFaveAction, {duration: 'long'});
        myVerticalSlide.slideOut();
    }       
}