/** -------------- TextPanel class ---------------------*/
function UGTextPanel(){
var t = this;
var g_objPanel, g_objParent, g_objTitle, g_objDesc;
var g_objBG, g_objTextWrapper, g_gallery;
var g_functions = new UGFunctions(), g_optionsPrefix = "";
var g_options = {
textpanel_align:"bottom", //(top , bottom), textpanel align according the parent
textpanel_margin:0, //margin from the textpanel position according the textpanel_align
textpanel_text_valign:"middle", //middle, top, bottom - text vertical align
textpanel_padding_top:10, //textpanel padding top
textpanel_padding_bottom:10, //textpanel padding bottom
textpanel_height: null, //textpanel height. if null it will be set dynamically
textpanel_padding_title_description: 5, //the space between the title and the description
textpanel_padding_right: 11, //cut some space for text from right
textpanel_padding_left: 11, //cut some space for text from left
textpanel_fade_duration: 200, //the fade duration of textpanel appear
textpanel_enable_title: true, //enable the title text
textpanel_enable_description: true, //enable the description text
textpanel_enable_bg: true, //enable the textpanel background
textpanel_bg_color:"#000000", //textpanel background color
textpanel_bg_opacity: 0.4, //textpanel background opacity
textpanel_title_color:null, //textpanel title color. if null - take from css
textpanel_title_font_family:null, //textpanel title font family. if null - take from css
textpanel_title_text_align:null, //textpanel title text align. if null - take from css
textpanel_title_font_size:null, //textpanel title font size. if null - take from css
textpanel_title_bold:null, //textpanel title bold. if null - take from css
textpanel_css_title:{}, //textpanel additional css of the title
textpanel_desc_color:null, //textpanel description font family. if null - take from css
textpanel_desc_font_family:null, //textpanel description font family. if null - take from css
textpanel_desc_text_align:null, //textpanel description text align. if null - take from css
textpanel_desc_font_size:null, //textpanel description font size. if null - take from css
textpanel_desc_bold:null, //textpanel description bold. if null - take from css
textpanel_css_description:{}, //textpanel additional css of the description
textpanel_bg_css:{}, //textpanel background css
};
var g_temp = {
isFirstTime: true
};
/**
* position elements from top
*/
function positionElementsTop(animateHeight, startY){
if(!startY)
var startY = g_options.textpanel_padding_top;
//place title
var maxy = startY;
//place title
if(g_objTitle){
var titleY = maxy;
g_functions.placeElement(g_objTitle, 0, titleY);
var objTitleSize = g_functions.getElementSize(g_objTitle);
var maxy = objTitleSize.bottom;
}
//place description
var textDesc = "";
if(g_objDesc)
textDesc = jQuery.trim(g_objDesc.text());
if(textDesc != ""){
var descY = maxy;
if(g_objTitle)
descY += g_options.textpanel_padding_title_description;
g_functions.placeElement(g_objDesc, 0, descY);
var objDescSize = g_functions.getElementSize(g_objDesc);
maxy = objDescSize.bottom;
}
//change panel height
if(!g_options.textpanel_height){
var panelHeight = maxy + g_options.textpanel_padding_bottom;
setHeight(panelHeight, animateHeight);
}
}
/**
* get total text and description height
*/
function getTotalTextHeight(){
var totalHeight = 0;
if(g_objTitle)
totalHeight += g_objTitle.outerHeight();
if(g_objDesc){
var textDesc = "";
if(g_objDesc)
textDesc = jQuery.trim(g_objDesc.text());
if(textDesc != ""){
if(g_objTitle)
totalHeight += g_options.textpanel_padding_title_description;
totalHeight += g_objDesc.outerHeight();
}
}
return(totalHeight);
}
/**
* position elements to center
*/
function positionElementsMiddle(){
var totalTextHeight = getTotalTextHeight();
var startY = (g_objTextWrapper.height() - totalTextHeight) / 2;
positionElementsTop(false, startY);
}
/**
* position elements to bottom
*/
function positionElementBottom(){
var totalTextHeight = getTotalTextHeight();
var startY = g_objTextWrapper.height() - totalTextHeight - g_options.textpanel_padding_bottom;
positionElementsTop(false, startY);
}
/**
* position elements inside the panel
*/
this.positionElements = function(animateHeight){
//if height not set, position only top
if(!g_options.textpanel_height || g_options.textpanel_text_valign == "top"){
positionElementsTop(animateHeight);
return(false);
}
switch(g_options.textpanel_text_valign){
default:
case "top":
positionElementsTop(false); //no animation in this case
break;
case "bottom":
positionElementBottom();
break;
case "center":
case "middle":
positionElementsMiddle();
break;
}
}
/**
* set new panel height
*/
function setHeight(height, animateHeight){
if(!animateHeight)
var animateHeight = false;
if(animateHeight == true){
if(g_objBG){
//avoid background jumps
var currentHeight = g_objBG.height();
if(height > currentHeight)
g_objBG.height(height);
}
var objCss = {height: height+"px"};
g_objPanel.add(g_objTextWrapper).animate(objCss, g_options.textpanel_fade_duration);
}else{
if(g_objBG)
g_objBG.height(height);
g_objPanel.add(g_objTextWrapper).height(height);
}
}
/**
* init the panel
*/
this.init = function(objGallery, customOptions, optionsPrefix){
g_gallery = objGallery;
//change options by prefix
if(optionsPrefix){
g_optionsPrefix = optionsPrefix;
customOptions = g_functions.convertCustomPrefixOptions(customOptions,g_optionsPrefix,"textpanel");
}
if(customOptions)
g_options = jQuery.extend(g_options, customOptions);
//validation:
if(g_options.textpanel_enable_title == false && g_options.textpanel_enable_description == false)
throw new Error("Textpanel Error: The title or description must be enabled");
if(g_options.textpanel_height && g_options.textpanel_height < 0)
g_options.textpanel_height = null;
}
/**
* append the bullets html to some parent
*/
this.appendHTML = function(objParent){
g_objParent = objParent;
var html = "
";
if(g_options.textpanel_enable_bg == true)
html += "
";
html += "
";
if(g_options.textpanel_enable_title == true)
html += "
";
if(g_options.textpanel_enable_description == true)
html += "
";
html += "
";
objParent.append(html);
g_objPanel = objParent.children(".ug-textpanel");
g_objTextWrapper = g_objPanel.children(".ug-textpanel-textwrapper");
setCss();
}
/**
* set panel css according the options
*/
function setCss(){
//set background css
if(g_options.textpanel_enable_bg == true){
g_objBG = g_objPanel.children(".ug-textpanel-bg");
g_objBG.fadeTo(0,g_options.textpanel_bg_opacity);
var objCssBG = {"background-color":g_options.textpanel_bg_color};
objCssBG = jQuery.extend(objCssBG, g_options.textpanel_bg_css);
g_objBG.css(objCssBG);
}
//set title css from options
if(g_options.textpanel_enable_title == true){
g_objTitle = g_objTextWrapper.children(".ug-textpanel-title");
var objCssTitle = {};
if(g_options.textpanel_title_color !== null)
objCssTitle["color"] = g_options.textpanel_title_color;
if(g_options.textpanel_title_font_family !== null)
objCssTitle["font-family"] = g_options.textpanel_title_font_family;
if(g_options.textpanel_title_text_align !== null)
objCssTitle["text-align"] = g_options.textpanel_title_text_align;
if(g_options.textpanel_title_font_size !== null)
objCssTitle["font-size"] = g_options.textpanel_title_font_size+"px";
if(g_options.textpanel_title_bold !== null){
if(g_options.textpanel_title_bold === true)
objCssTitle["font-weight"] = "bold";
else
objCssTitle["font-weight"] = "normal";
}
//set additional css
if(g_options.textpanel_css_title)
objCssTitle = jQuery.extend(objCssTitle, g_options.textpanel_css_title);
g_objTitle.css(objCssTitle);
}
//set description css
if(g_options.textpanel_enable_description == true){
g_objDesc = g_objTextWrapper.children(".ug-textpanel-description");
var objCssDesc = {};
if(g_options.textpanel_desc_color !== null)
objCssDesc["color"] = g_options.textpanel_desc_color;
if(g_options.textpanel_desc_font_family !== null)
objCssDesc["font-family"] = g_options.textpanel_desc_font_family;
if(g_options.textpanel_desc_text_align !== null)
objCssDesc["text-align"] = g_options.textpanel_desc_text_align;
if(g_options.textpanel_desc_font_size !== null)
objCssDesc["font-size"] = g_options.textpanel_desc_font_size+"px";
if(g_options.textpanel_desc_bold !== null){
if(g_options.textpanel_desc_bold === true)
objCssDesc["font-weight"] = "bold";
else
objCssDesc["font-weight"] = "normal";
}
//set additional css
if(g_options.textpanel_css_title)
objCssDesc = jQuery.extend(objCssDesc, g_options.textpanel_css_description);
g_objDesc.css(objCssDesc);
}
}
/**
* on item change, set the text
*/
function onItemChange(){
var objItem = g_gallery.getSelectedItem();
t.setText(objItem.title, objItem.description);
}
/**
* init events
*/
function initEvents(){
//on item change, set the text in the slider.
jQuery(g_gallery).on(g_gallery.events.ITEM_CHANGE, onItemChange);
}
/**
* destroy the events
*/
this.destroy = function(){
jQuery(g_gallery).off(g_gallery.events.ITEM_CHANGE);
}
/**
* run the text panel
*/
this.run = function(){
t.setSizeByParent();
initEvents();
}
/**
* set panel size
*/
this.setPanelSize = function(panelWidth){
var panelHeight = 80; //some default number
if(g_options.textpanel_height)
panelHeight = g_options.textpanel_height;
g_objPanel.width(panelWidth);
g_objPanel.height(panelHeight);
//set background size
if(g_objBG){
g_objBG.width(panelWidth);
g_objBG.height(panelHeight);
}
//set textwrapper size and position
var textWrapperWidth = panelWidth - g_options.textpanel_padding_left - g_options.textpanel_padding_right;
var textWrapperLeft = g_options.textpanel_padding_left;
g_functions.setElementSizeAndPosition(g_objTextWrapper, textWrapperLeft, 0, textWrapperWidth, panelHeight);
//set text width
if(g_objTitle)
g_objTitle.width(textWrapperWidth);
//set description height
if(g_objDesc)
g_objDesc.width(textWrapperWidth);
if(g_temp.isFirstTime == false)
t.positionElements(false);
}
/**
* set size by parent. the height is set to default meanwhile
*/
this.setSizeByParent = function(){
var objSize = g_functions.getElementSize(g_objParent);
t.setPanelSize(objSize.width);
}
/**
* set plain sext without other manipulations
*/
this.setTextPlain = function(title, description){
if(g_objTitle)
g_objTitle.html(title);
if(g_objDesc)
g_objDesc.html(description);
}
/**
* set html text
*/
this.setText = function(title, description){
if(g_temp.isFirstTime == true){
t.setTextPlain(title, description);
g_temp.isFirstTime = false;
t.positionElements(false);
}else{ //width animation
g_objTextWrapper.stop().fadeTo(g_options.textpanel_fade_duration,0,function(){
t.setTextPlain(title, description);
t.positionElements(true);
jQuery(this).fadeTo(g_options.textpanel_fade_duration,1);
});
}
}
/**
* position the panel
*/
this.positionPanel = function(customTop, customLeft){
var objCss = {};
if(customTop !== undefined && customTop !== null){
objCss.top = customTop;
}else{
switch(g_options.textpanel_align){
case "top":
objCss.top = g_options.textpanel_margin + "px";
break;
case "bottom":
objCss.top = "auto";
objCss.bottom = g_options.textpanel_margin + "px";
break;
case "middle":
objCss.top = g_functions.getElementRelativePos(g_objPanel, "middle", g_options.textpanel_margin);
break;
}
}
if(customLeft !== undefined && customLeft !== null)
objCss.left = customLeft;
g_objPanel.css(objCss);
}
/**
* set custom options
*/
this.setOptions = function(objOptions){
if(g_optionsPrefix)
objOptions = g_functions.convertCustomPrefixOptions(objOptions, g_optionsPrefix, "textpanel");
g_options = jQuery.extend(g_options, objOptions);
}
/**
* get html element
*/
this.getElement = function(){
return(g_objPanel);
}
/**
* get element size
*/
this.getSize = function(){
var objSize = g_functions.getElementSize(g_objPanel);
return(objSize);
}
/**
* refresh panel size, position and contents
*/
this.refresh = function(toShow, noPosition, panelWidth){
setCss();
if(!panelWidth)
t.setSizeByParent();
else
t.setPanelSize(panelWidth);
t.positionElements(false);
if(noPosition !== true)
t.positionPanel();
if(toShow === true)
t.show();
}
/**
* hide the panel
*/
this.hide = function(){
g_objPanel.hide();
}
/**
* show the panel
*/
this.show = function(){
g_objPanel.show();
}
/**
* get options
*/
this.getOptions = function(){
return(g_options);
}
/**
* get text panel option
*/
this.getOption = function(optionName){
if(g_options.hasOwnProperty(optionName) == false)
return(null);
return(g_options[optionName]);
}
}
/** -------------- UGZoomButtonsPanel class ---------------------*/
/**
* zoom buttons panel class
*/
function UGZoomButtonsPanel(){
var t = this;
var g_objPanel, g_objParent, g_objButtonPlus, g_objButtonMinus, g_objButtonReturn;
var g_slider = new UGSlider;
var g_functions = new UGFunctions();
var g_options = {
slider_zoompanel_skin: "" //skin of the zoom panel, if empty inherit from gallery skin
};
var g_temp = {
};
/**
* init the panel
*/
this.init = function(objSlider, customOptions){
g_slider = objSlider;
if(customOptions)
g_options = jQuery.extend(g_options, customOptions);
}
/**
* append the bullets html to some parent
*/
this.appendHTML = function(objParent){
g_objParent = objParent;
var html = "";
html += "
";
html += "
";
html += "
";
html += "
";
objParent.append(html);
g_objPanel = objParent.children(".ug-zoompanel");
g_objButtonPlus = g_objPanel.children(".ug-zoompanel-plus");
g_objButtonMinus = g_objPanel.children(".ug-zoompanel-minus");
g_objButtonReturn = g_objPanel.children(".ug-zoompanel-return");
}
/**
* get buttons element
*/
this.getElement = function(){
return(g_objPanel);
}
/**
* check if the button disabled
*/
function isButtonDisabled(objButton){
if(objButton.hasClass("ug-zoompanel-button-disabled"))
return(true);
return(false);
}
/**
* disable some button
*/
function disableButton(objButton){
objButton.addClass("ug-zoompanel-button-disabled");
}
/**
* enable some button
*/
function enableButton(objButton){
objButton.removeClass("ug-zoompanel-button-disabled");
}
/**
* on zoom change
*/
function onZoomChange(){
//skip not image types
if(g_slider.isCurrentSlideType("image") == false)
return(true);
var isFit = g_slider.isCurrentSlideImageFit();
if(isFit == true){ //if fit, disable buttons
if(isButtonDisabled(g_objButtonMinus) == false){
disableButton(g_objButtonMinus);
disableButton(g_objButtonReturn);
}
}else{ //if not fit, enable minus buttons
if(isButtonDisabled(g_objButtonMinus) == true){
enableButton(g_objButtonMinus);
enableButton(g_objButtonReturn);
}
}
}
/**
* init zoompanel events
*/
t.initEvents = function(){
//add hover class on buttons
g_functions.addClassOnHover(g_objButtonPlus, "ug-button-hover");
g_functions.addClassOnHover(g_objButtonMinus, "ug-button-hover");
g_functions.addClassOnHover(g_objButtonReturn, "ug-button-hover");
//set buttons click events
g_functions.setButtonOnClick(g_objButtonPlus, function(){
if(isButtonDisabled(g_objButtonPlus) == true)
return(true);
g_slider.zoomIn();
});
g_functions.setButtonOnClick(g_objButtonMinus, function(){
if(isButtonDisabled(g_objButtonMinus) == true)
return(true);
g_slider.zoomOut();
});
g_functions.setButtonOnClick(g_objButtonReturn, function(){
if(isButtonDisabled(g_objButtonReturn) == true)
return(true);
g_slider.zoomBack();
});
//on zoom change event
jQuery(g_slider).on(g_slider.events.ZOOM_CHANGE,onZoomChange);
jQuery(g_slider).on(g_slider.events.ITEM_CHANGED,onZoomChange);
}
}
/** -------------- UgBullets class ---------------------*/
function UGBullets(){
var t = this, g_numBullets = 0, g_gallery = new UniteGalleryMain();
var g_objBullets, g_objParent, g_activeIndex = -1;
var g_functions = new UGFunctions();
var g_temp = {
isInited:false
};
var g_options = {
bullets_skin: "", //bullets_skin: "" //skin of the bullets, if empty inherit from gallery skin
bullets_addclass: "", //bullets object class addition
bullets_space_between:-1 //set the space between bullets. If -1 then will be set default space from the skins
}
/**
* the events
*/
this.events = {
BULLET_CLICK : "bullet_click"
};
/**
* init the bullets
*/
this.init = function(gallery, customOptions, numBullets){
g_gallery = gallery;
if(numBullets)
g_numBullets = numBullets;
else
g_numBullets = g_gallery.getNumItems();
g_temp.isInited = true;
g_options = jQuery.extend(g_options, customOptions);
if(g_options.bullets_skin == "")
g_options.bullets_skin = g_options.gallery_skin;
}
/**
* add bullets to the html
*/
function setHtmlBullets(){
var html = "";
var addHtml = "";
if(g_options.bullets_space_between != -1)
addHtml = " style='margin-left:" + g_options.bullets_space_between + "px'";
for(var i=0; i< g_numBullets; i++){
if(i == 0)
html += "";
else
html += "";
}
g_objBullets.html(html);
}
/**
* append the bullets html to some parent
*/
this.appendHTML = function(objParent){
g_objParent = objParent;
validateInited();
var addClass = "";
if(g_options.bullets_addclass != "")
addClass = " " + g_options.bullets_addclass;
var html = "";
html += "
";
g_objBullets = jQuery(html);
objParent.append(g_objBullets);
setHtmlBullets();
initEvents();
}
/**
* update number of bullets
*/
this.updateNumBullets = function(numBullets){
g_numBullets = numBullets;
setHtmlBullets();
initEvents();
}
/**
*
* on bullet click
*/
function onBulletClick(objBullet){
//filter not active only
if(t.isActive(objBullet) == true)
return(true);
var index = objBullet.index();
jQuery(t).trigger(t.events.BULLET_CLICK, index);
}
/**
* init the bullets events
* trigger bullet click event
*/
function initEvents(){
var objBullets = g_objBullets.children(".ug-bullet");
g_functions.setButtonOnClick(objBullets, onBulletClick);
objBullets.on("mousedown mouseup",function(event){
//event.preventDefault();
return(false);
});
}
/**
* get the bullets element
*/
this.getElement = function(){
return g_objBullets;
}
/**
* set some item active
*/
this.setActive = function(index){
validateInited();
validateIndex(index);
var children = g_objBullets.children(".ug-bullet");
children.removeClass("ug-bullet-active");
var bullet = jQuery(children[index]);
bullet.addClass("ug-bullet-active");
g_activeIndex = index;
}
/**
* check if the bullet is active
*/
this.isActive = function(index){
validateIndex(index);
if(typeof index != "number")
var objBullet = index;
else{
var objBullet = g_objBullets.children(".ug-bullet")[index];
}
if(objBullet.hasClass("ug-bullet-active"))
return(true);
return(false);
}
/**
* validate bullets index
*/
function validateIndex(index){
if(index < 0 || index >= g_numBullets)
throw new Error("wrong bullet index: " + index);
}
/**
* validate that the bullets are inited
*/
function validateInited(){
if(g_temp.isInited == true)
return(true);
throw new Error("The bullets are not inited!");
}
}
/** -------------- UgProgressBar class ---------------------*/
function UGProgressBar(){
var t = this, g_isInited = false;
var g_percent = 0, g_objBar, g_objInner, g_functions = new UGFunctions();
var g_options = {
slider_progressbar_color:"#ffffff", //progress bar color
slider_progressbar_opacity: 0.6, //progress bar opacity
slider_progressbar_line_width: 5 //progress bar line width
}
/**
* put progress pie to some wrapper
*/
this.put = function(g_objWrapper, userOptions){
if(userOptions)
g_options = jQuery.extend(g_options, userOptions);
g_objWrapper.append("");
g_objBar = g_objWrapper.children(".ug-progress-bar");
g_objInner = g_objBar.children(".ug-progress-bar-inner");
//init the objects
g_objInner.css("background-color", g_options.slider_progressbar_color);
g_objBar.height(g_options.slider_progressbar_line_width);
g_objInner.height(g_options.slider_progressbar_line_width);
g_objInner.width("0%");
//set opacity old way (because ie bug)
var opacity = g_options.slider_progressbar_opacity;
var objInnerHTML = g_objInner[0];
objInnerHTML.style.opacity = opacity;
objInnerHTML.style.filter = 'alpha(opacity=' + opacity*100 + ')';
}
/**
* put the pie hidden
*/
this.putHidden = function(g_objWrapper, userOptions){
t.put(g_objWrapper, userOptions);
g_objBar.hide();
}
/**
* get the bar object
*/
this.getElement = function(){
return(g_objBar);
}
/**
* set progress bar size
*/
this.setSize = function(width){
g_objBar.width(width);
g_objInner.width(width);
t.draw();
}
/**
* set position
*/
this.setPosition = function(left, top, offsetLeft, offsetTop){
g_functions.placeElement(g_objBar, left, top, offsetLeft, offsetTop);
}
/**
* draw the progress bar
*/
this.draw = function(){
var innerWidth = g_percent * 100;
g_objInner.width(innerWidth + "%");
}
/**
* set and draw the progress
*/
this.setProgress = function(percent){
g_percent = g_functions.normalizePercent(percent);
//debugLine(g_percent, true);
t.draw();
}
/**
* get type string
*/
this.getType = function(){
return("bar");
}
}
/** -------------- UgProgressPie class ---------------------*/
function UGProgressPie(){
var t = this, g_isInited = false;
var g_percent, g_objPie, g_functions = new UGFunctions();
var g_options = {
slider_progresspie_type_fill: false, //false is stroke, true is fill - the progress pie type, stroke of fill
slider_progresspie_color1: "#B5B5B5", //the first color of the progress pie
slider_progresspie_color2: "#E5E5E5", //progress pie second color
slider_progresspie_stroke_width: 6, //progress pie stroke width
slider_progresspie_width: 30, //progess pie width
slider_progresspie_height:30 //progress pie height
}
/**
* put progress pie to some wrapper
*/
this.put = function(g_objWrapper, userOptions){
if(userOptions)
g_options = jQuery.extend(g_options, userOptions);
g_objWrapper.append("");
g_objPie = g_objWrapper.children(".ug-canvas-pie");
}
/**
* put the pie hidden
*/
this.putHidden = function(g_objWrapper, userOptions){
t.put(g_objWrapper, userOptions);
draw(0.1);
g_objPie.hide();
}
/**
* get jquery object
*/
this.getElement = function(){
return(g_objPie);
}
/**
* set position
*/
this.setPosition = function(left, top){
g_functions.placeElement(g_objPie, left, top);
}
/**
* get the height and width of the object
*/
this.getSize = function(){
var obj = {
width: g_options.slider_progresspie_width,
height: g_options.slider_progresspie_height
};
return(obj);
}
/**
* draw the progress pie
*/
function draw(percent){
if(!percent)
var percent = 0;
var radius = Math.min(g_options.slider_progresspie_width, g_options.slider_progresspie_height) / 2;
var ctx = g_objPie[0].getContext('2d');
//init the context
if(g_isInited == false){
g_isInited = true;
ctx.rotate(Math.PI*(3/2));
ctx.translate(-2 * radius,0);
}
ctx.clearRect(0,0,g_options.slider_progresspie_width, g_options.slider_progresspie_height);
var centerX = g_options.slider_progresspie_width / 2;
var centerY = g_options.slider_progresspie_height / 2;
//draw main arc
var startPoint = 0;
var endPoint = percent * Math.PI * 2;
if(g_options.slider_progresspie_type_fill == true){ //fill
ctx.beginPath();
ctx.moveTo(centerX, centerY);
ctx.arc(centerX,centerY,radius,startPoint, endPoint);
ctx.lineTo(centerX, centerY);
ctx.fillStyle = g_options.slider_progresspie_color1;
ctx.fill();
ctx.closePath();
}else{ //stroke
ctx.globalCompositeOperation = "source-over";
ctx.beginPath();
ctx.moveTo(centerX, centerY);
ctx.arc(centerX,centerY,radius,startPoint, endPoint);
ctx.lineTo(centerX, centerY);
ctx.fillStyle = g_options.slider_progresspie_color1;
ctx.fill();
ctx.closePath();
ctx.globalCompositeOperation = "destination-out";
var radius2 = radius - g_options.slider_progresspie_stroke_width;
ctx.beginPath();
ctx.moveTo(centerX, centerY);
ctx.arc(centerX,centerY,radius2,startPoint, endPoint);
ctx.lineTo(centerX, centerY);
ctx.fillStyle = g_options.slider_progresspie_color1;
ctx.fill();
ctx.closePath();
}
//draw rest arc (only on fill type):
if(g_options.slider_progresspie_type_fill == true){
startPoint = endPoint;
endPoint = Math.PI * 2;
ctx.beginPath();
ctx.arc(centerX,centerY,radius,startPoint, endPoint);
ctx.lineTo(centerX, centerY);
ctx.fillStyle = g_options.slider_progresspie_color2;
ctx.fill();
ctx.closePath();
}
}
/**
* set progress (0-1)
*/
this.setProgress = function(percent){
percent = g_functions.normalizePercent(percent);
g_percent = percent;
draw(percent);
}
/**
* get type string
*/
this.getType = function(){
return("pie");
}
}